我最近开始学习Java作为我的下一个语言,我对菜单结构感到困惑。在Python中,菜单项的定义顺序是菜单项的顺序,但在Java AWT中,我在创建子菜单项作为我的第一项时遇到问题。
即使我.add()
首先显示子菜单项,它们仍然显示为最后一个菜单项。我一直在寻找,但我找不到任何方法告诉菜单让子菜单成为第一个列出的菜单项。
这在AWT中是否可行?
以下是我展示问题示例的代码。我的班级是名字TestClass.java
。
import java.awt.*;
import java.awt.event.*;
public class TestClass extends Frame{
/**
*
*/
private static final long serialVersionUID = 1L;
public TestClass () {
setLayout(new FlowLayout());
MenuBar mb=new MenuBar();
Menu menu=new Menu("Menu");
Menu submenu=new Menu("New");
MenuItem i1=new MenuItem("Sub menu 1");
MenuItem i2=new MenuItem("Sub menu 2");
MenuItem i3=new MenuItem("Exit");
submenu.add(i1);
submenu.add(i2);
menu.add(i3);
menu.add(submenu);
mb.add(menu);
setMenuBar(mb);
setSize(100,100);
setLayout(null);
setVisible(true);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
);
}
public static void main(String[] args) {
new TestClass();
}
}
答案 0 :(得分:2)
将项目添加到包含菜单是重要的部分:
menu.add(i3);
menu.add(submenu);
是错误的方法。它必须是
menu.add(submenu);
menu.add(i3);