日期:2014-05-20  浏览次数:20647 次

Java 程序不运行……
(我是纯新手……)
看了书上的例子以后,想融合一下编一个画图的程序,
能画直线、圆圈、填充、变换、裁剪~(想的真美啊……)

然后我想用六个类(我也不知道对不对…)
一个类用来写框架DrawJFrame,然后通过里面的菜单栏的选择跳转到上述的五个功能~(是不是有点想一步登天啊…)
但是这个框架写写写写,没报错,但是点运行不出任何东西……
我想知道是不是错了……(肯定是错了的吧哦诶!)

求大神们~
(二楼贴代码……)

------解决方案--------------------
Swing、不懂、帮顶。
------解决方案--------------------
Swing不懂,建议要是不做Swing方面的工作,不要花太多时间学习。
------解决方案--------------------
你写的addmymenu方法没有被调用!!!
------解决方案--------------------
frame 没有调用 setVisible(true);
------解决方案--------------------
Java code

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DrawJFrame extends JFrame implements ActionListener{

    public DrawJFrame()
    {
        super("Draw");
        Dimension dim = getToolkit().getScreenSize();
        this.setBounds(dim.width/4, dim.height/4, dim.width/2, dim.height/2); //窗口居中
        this.addmyMenu();
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    private void addmyMenu()
    {
        JMenuBar menubar = new JMenuBar(); //菜单栏
        this.setJMenuBar(menubar);
        String menustr[] = {"文件"};
        JMenu menu[] = new JMenu[menustr.length];
        for(int i=0;i<menustr.length;i++)
            {
                menu[i] = new JMenu(menustr[i]); //菜单
                menubar.add(menu[i]); //菜单栏中加入菜单
            }
        menu[0].add(new JMenuItem("绘画直线")); //生成菜单项并加入到菜单栏
        menu[0].add(new JMenuItem("绘画圆圈"));
        menu[0].add(new JMenuItem("实现填充"));
        menu[0].add(new JMenuItem("实现变换"));
        menu[0].add(new JMenuItem("实现裁剪"));
        menu[0].addSeparator(); //加分割线
        JMenuItem menuitem_exit = new JMenuItem("退出程序");
        menu[0].add(menuitem_exit);
        menuitem_exit.addActionListener(this); //菜单项注册单击事件监听器
    }

    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()instanceof JMenuItem) //单击菜单项
            {
                if(e.getActionCommand()=="退出程序")
                    if(JOptionPane.showConfirmDialog(this, "终止该程序运行?")==0)
                        System.exit(0);
                return;
            }
    }

    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new java.lang.Runnable(){
                @Override public void run(){
                    new DrawJFrame().setVisible(true);
                }
            });
    }
}