java 菜单条 为什么我 点了一下 文件 那个 Jmenu 后 鼠标一移开 下面的 jmenuitem 就 不显示

/*
* 记事本
*
*/
package com.hhj.swing;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
public class Demo2_2 extends JFrame {
JMenuBar jMenuBar;
JMenu jMenu1, jMenu2, jMenu3;
JMenuItem jmi1, jmi2, jmi3, jmi4, jmi5, jmi6, jmi7;
JMenu newjJMenu;
JMenuItem wenjian, project;
JToolBar jToolBar;
JButton jb1, jb2, jb3, jb4, jb5, jb6;
JTextArea jTextArea;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo2_2 demo2_2=new Demo2_2();
}
public Demo2_2() {
jMenuBar = new JMenuBar();
jMenu1 = new JMenu("文件(F)");
jMenu1.setMnemonic('F');
jMenu2 = new JMenu("编辑(E)");
jMenu2.setMnemonic('E');
jmi1 = new JMenuItem("新建");
jmi2 = new JMenuItem("打开");
jmi3 = new JMenuItem("保存");
jmi4 = new JMenuItem("另存为");
jmi5 = new JMenuItem("更改设置");
jmi6 = new JMenuItem("打印");
jmi7 = new JMenuItem("退出");
jMenu1.add(jmi1);
jMenu1.add(jmi2);
jMenu1.add(jmi3);
jMenu1.addSeparator();
jMenu1.add(jmi4);
jMenu1.add(jmi5);
jMenu1.add(jmi6);
jMenu1.addSeparator();
jMenu1.add(jmi7);
newjJMenu = new JMenu();
wenjian = new JMenuItem("文件");
project = new JMenuItem("工程");
newjJMenu.add(wenjian);
newjJMenu.add(project);
jmi1.add(newjJMenu);
jMenuBar.add(jMenu1);
jMenuBar.add(jMenu2);
this.setJMenuBar(jMenuBar);
//this.addWindowListener(new MyWindowListener());
this.setSize(400, 400);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

}

应该是顺序的问题,试着这样改一下:
public Demo2_2() {
jMenuBar = new JMenuBar();
jMenu1 = new JMenu("文件(F)");
jMenu1.setMnemonic('F');
jmi1 = new JMenuItem("新建");

newjJMenu = new JMenu();
wenjian = new JMenuItem("文件");
project = new JMenuItem("工程");
newjJMenu.add(wenjian);
newjJMenu.add(project);
jmi1.add(newjJMenu);

jmi2 = new JMenuItem("打开");
jmi3 = new JMenuItem("保存");
jmi4 = new JMenuItem("另存为");
jmi5 = new JMenuItem("更改设置");
jmi6 = new JMenuItem("打印");
jmi7 = new JMenuItem("退出");
jMenu1.add(jmi1);
jMenu1.add(jmi2);
jMenu1.add(jmi3);
jMenu1.addSeparator();
jMenu1.add(jmi4);
jMenu1.add(jmi5);
jMenu1.add(jmi6);
jMenu1.addSeparator();
jMenu1.add(jmi7);

jMenu2 = new JMenu("编辑(E)");
jMenu2.setMnemonic('E');

jMenuBar.add(jMenu1);
jMenuBar.add(jMenu2);
this.setJMenuBar(jMenuBar);
//this.addWindowListener(new MyWindowListener());
this.setSize(400, 400);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}追问

我已经找到问题了。
二级菜单不应该jmi1.add(newjJMenu); 这样加入
而是jMenu1.add(newjMenu);
我我加错了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-25
移开是什么意思?
鼠标不在菜单上,也想让它显示?