如何在AWT菜单中定义菜单项的顺序?

时间:2018-03-22 14:51:18

标签: java menu awt

我最近开始学习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();
   }
}

1 个答案:

答案 0 :(得分:2)

将项目添加到包含菜单是重要的部分:

  menu.add(i3);
  menu.add(submenu);

是错误的方法。它必须是

  menu.add(submenu);
  menu.add(i3);