为什么我写的代码设置好了菜单功能却不能显现出菜单?
为什么我写的代码设置好了菜单功能却不能显现出菜单?
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加载了,顺序有点奇怪哦,呵呵!
[解决办法]
楼主的代码让地球人崩溃!!!!