读书人

为什么小弟我写的代码设置好了菜单功能

发布时间: 2012-03-29 12:53:12 作者: rapoo

为什么我写的代码设置好了菜单功能却不能显现出菜单?
为什么我写的代码设置好了菜单功能却不能显现出菜单?
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.applet.*;

public class Merframe extends JFrame{//声明程序规范//
JMenu jmenu1=new JMenu();
JMenu jmenu2=new JMenu();
JMenu jmenu3=new JMenu();
JMenu jmenu4=new JMenu();
JMenu jmenu5=new JMenu();
JMenu jmenu6=new JMenu();
JMenuBar jmenubar1=new JMenuBar();
JMenuItem jmenuitem1=new JMenuItem();
JMenuItem jmenuitem2=new JMenuItem();
JMenuItem jmenuitem3=new JMenuItem();
JMenuItem jmenuitem4=new JMenuItem();
JMenuItem jmenuitem5=new JMenuItem();
JMenuItem jmenuitem6=new JMenuItem();
JMenuItem jmenuitem7=new JMenuItem();
JMenuItem jmenuitem8=new JMenuItem();
JMenuItem jmenuitem9=new JMenuItem();
JMenuItem jmenuitem10=new JMenuItem();
JMenuItem jmenuitem11=new JMenuItem();
JMenuItem jmenuitem12=new JMenuItem();
JMenuItem jmenuitem13=new JMenuItem();
JMenuItem jmenuitem14=new JMenuItem();
JMenuItem jmenuitem15=new JMenuItem();
JMenuItem jmenuitem16=new JMenuItem();
JMenuItem jmenuitem17=new JMenuItem();
JMenuItem jmenuitem18=new JMenuItem();
JMenuItem jmenuitem19=new JMenuItem();
JPanel jpanel1=new JPanel();
JList jlist1=new JList();
FlowLayout flowlayout1=new FlowLayout();
User_info userd;
public Merframe()//声明程序主体//
{

jpanel1.setLayout(flowlayout1);
this.setJMenuBar(jmenubar1);
jmenu1.setLabel("人员登记信息");

jmenu2.setLabel("药品管理信息");

jmenu3.setLabel("医疗&养老管理");

jmenu4.setLabel("导入数据");

jmenu5.setLabel("帮助");

jmenu6.setLabel("退出");

jmenuitem1.setLabel("病人信息登记");

jmenuitem2.setLabel("病人信息修改(查询)");

jmenuitem3.setLabel("病人信息删除");

jmenuitem4.setLabel("药品入库管理");

jmenuitem5.setLabel("药品出库管理");

jmenuitem6.setLabel("药品库存管理(查询)");

jmenuitem7.setLabel("管理员信息登记");

jmenuitem8.setLabel("管理员信息修改(查询)");

jmenuitem9.setLabel("管理员信息删除");

jmenuitem10.setLabel("医疗保险人员登记");

jmenuitem11.setLabel("医疗保险人员修改(查询)");

jmenuitem12.setLabel("医疗保险人员删除");

jmenuitem13.setLabel("养老保险人员登记");

jmenuitem14.setLabel("养老保险人员修改(查询)");

jmenuitem15.setLabel("deloldinfo");

jmenuitem16.setLabel("import EXCEL info");

jmenuitem17.setLabel("import ACCESS info");

jmenuitem18.setLabel("help");

jmenuitem19.setLabel("exit");

jmenubar1.add(jmenu1);//加入管理信息//
jmenubar1.add(jmenu2);
jmenubar1.add(jmenu3);
jmenubar1.add(jmenu4);
jmenubar1.add(jmenu5);
jmenubar1.add(jmenu6);
jmenu1.add(jmenuitem1);


jmenu1.add(jmenuitem2);
jmenu1.add(jmenuitem3);
jmenu1.add(jmenuitem7);
jmenu1.add(jmenuitem8);
jmenu1.add(jmenuitem9);
jmenu2.add(jmenuitem4);
jmenu2.add(jmenuitem5);
jmenu2.add(jmenuitem6);
jmenu3.add(jmenuitem10);
jmenu3.add(jmenuitem11);
jmenu3.add(jmenuitem12);
jmenu3.add(jmenuitem13);
jmenu3.add(jmenuitem14);
jmenu3.add(jmenuitem15);
jmenu4.add(jmenuitem16);
jmenu4.add(jmenuitem17);
jmenu5.add(jmenuitem18);
jmenu6.add(jmenuitem19);
jpanel1.add(jmenubar1);
jpanel1.add(jmenu1);
jpanel1.add(jmenu2);
jpanel1.add(jmenu3);
jpanel1.add(jmenu4);
jpanel1.add(jmenu5);
jpanel1.add(jmenu6);

jmenu1.setVisible(true);

jmenu2.setVisible(true);

jmenu3.setVisible(true);

jmenu4.setVisible(true);

jmenu5.setVisible(true);

jmenu6.setVisible(true);

jmenuitem1.setVisible(true);

jmenuitem2.setVisible(true);

jmenuitem3.setVisible(true);

jmenuitem4.setVisible(true);

jmenuitem5.setVisible(true);

jmenuitem6.setVisible(true);

jmenuitem7.setVisible(true);

jmenuitem8.setVisible(true);

jmenuitem9.setVisible(true);

jmenuitem10.setVisible(true);

jmenuitem11.setVisible(true);

jmenuitem12.setVisible(true);

jmenuitem13.setVisible(true);

jmenuitem14.setVisible(true);

jmenuitem15.setVisible(true);

jmenuitem16.setVisible(true);

jmenuitem17.setVisible(true);

jmenuitem18.setVisible(true);

jmenuitem19.setVisible(true);

jmenuitem1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
userd=new User_info();

}
});
jmenuitem2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
userd=new User_info();

}
});



}

public static void main(String[] args)
{
Merframe merframe=new Merframe();
merframe.setVisible(true);
}
}

class User_info
{
}



[解决办法]
这段代码让我崩溃..
[解决办法]
给出窗口大小
[解决办法]

Java code
jpanel1.add(jmenubar1);        //jpanel1.add(jmenu1);        //jpanel1.add(jmenu2);        //jpanel1.add(jmenu3);        //jpanel1.add(jmenu4);        //jpanel1.add(jmenu5);        //jpanel1.add(jmenu6);        JPanel  contentPane=(JPanel) this.getContentPane();          contentPane.add(this.jpanel1);   //修改部分
[解决办法]
多余代码也太多,jpanel应该去掉,或者不要把菜单增加到jpanel
[解决办法]
还有那些setVisible多余
------解决方案--------------------


Java code
import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.List;import javax.swing.JFrame;import javax.swing.JList;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.SwingConstants;public class Merframe extends JFrame {// 声明程序规范    JMenu[] jmenus = new JMenu[] { new JMenu("人员登记信息"), new JMenu("药品管理信息"),            new JMenu("医疗&养老管理"), new JMenu("导入数据"), new JMenu("帮助"),            new JMenu("退出") };    JMenuBar jmenubar1 = new JMenuBar();    JMenuItem[] jmenuItem1 = new JMenuItem[] { new JMenuItem("病人信息登记"),            new JMenuItem("病人信息修改(查询)"), new JMenuItem("病人信息删除"),            new JMenuItem("管理员信息登记"), new JMenuItem("管理员信息修改(查询)"),            new JMenuItem("管理员信息删除") };    JMenuItem[] jmenuItem2 = new JMenuItem[] { new JMenuItem("药品入库管理"),            new JMenuItem("药品出库管理"), new JMenuItem("药品库存管理(查询)") };    JMenuItem[] jmenuItem3 = new JMenuItem[] { new JMenuItem("医疗保险人员登记"),            new JMenuItem("医疗保险人员修改(查询)"), new JMenuItem("医疗保险人员删除"),            new JMenuItem("养老保险人员登记"), new JMenuItem("养老保险人员修改(查询)"),            new JMenuItem("deloldinfo") };    JMenuItem[] jmenuItem4 = new JMenuItem[] {            new JMenuItem("import EXCEL info"),            new JMenuItem("import ACCESS info") };    JMenuItem[] jmenuItem5 = new JMenuItem[] { new JMenuItem("help") };    JMenuItem[] jmenuItem6 = new JMenuItem[] { new JMenuItem("exit") };    JList jlist1 = new JList();    FlowLayout flowlayout1 = new FlowLayout(SwingConstants.LEFT);    User_info userd;    List<JMenuItem[]> jmenuItemList = new ArrayList<JMenuItem[]>();    public Merframe()// 声明程序主体//    {        jmenuItemList.add(jmenuItem1);        jmenuItemList.add(jmenuItem2);        jmenuItemList.add(jmenuItem3);        jmenuItemList.add(jmenuItem4);        jmenuItemList.add(jmenuItem5);        jmenuItemList.add(jmenuItem6);        setLayout(flowlayout1);        int i = 0;        JMenuItem[] jMenuItems;        for (JMenu jmenu : jmenus) {            jMenuItems = jmenuItemList.get(i);            for (JMenuItem jmenuItem : jMenuItems) {                jmenu.add(jmenuItem);            }            jmenubar1.add(jmenu);            i++;        }        setJMenuBar(jmenubar1);        jmenuItem1[0].addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                userd = new User_info();            }        });        jmenuItem1[1].addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                userd = new User_info();            }        });    }    public static void main(String[] args) {        Merframe merframe = new Merframe();        merframe.setBounds(200, 100, 800, 600);        merframe.setVisible(true);    }}class User_info {}
[解决办法]
似乎JMenuBar还没有加载Menu就已经被JFrame加载了,顺序有点奇怪哦,呵呵!
[解决办法]
楼主的代码让地球人崩溃!!!!

读书人网 >J2SE开发

热点推荐