添加子菜单

Dan*_*l D 3 java swing jmenuitem jmenu

因此,我尝试查看 Java 文档来寻求帮助,但很快就感到困惑。我正在尝试向菜单项“编辑”添加一个子菜单,该菜单项将具有“复制”和“粘贴”子菜单,并且我知道如何执行此操作。我创建了一个子菜单变量,我可以使用它吗?请帮忙,谢谢。代码如下。

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class MyJFrame extends JFrame
{
JMenuBar menubar;
JMenu menu, submenu;
JMenuItem mi;

public MyJFrame(String title)
{
    super(title);
    menubar = new JMenuBar();
    setJMenuBar(menubar);
    buildMenu();
}

void buildMenu()
{
menu = new JMenu("File");

           mi = new JMenuItem("New");
           menu.add(mi);
           menubar.add(menu);

           mi = new JMenuItem("List Files");
           menu.add(mi);
           menubar.add(menu);
           menu.addSeparator();

           mi = new JMenuItem("Save As");
           menu.add(mi);
           menubar.add(menu);
           menu.addSeparator();

           mi = new JMenuItem("Close");
           menu.add(mi);
           menubar.add(menu);

    menu = new JMenu("Tools");

           mi = new JMenuItem("Sort");
           menu.add(mi);
           menubar.add(menu);

           mi = new JMenuItem("Search");
           menu.add(mi);
           menubar.add(menu);

           mi = new JMenuItem("Edit");
           menu.add(mi);
           menubar.add(menu);
           mi = new JMenuItem("Copy");
           menu.add(mi);
           menubar.add(menu);
           mi = new JMenuItem("Paste");
           menu.add(mi);
           menubar.add(menu);
}
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*Ag. 6

创建一个菜单而不是用于编辑的菜单项,并添加菜单项复制和粘贴。然后将编辑菜单添加到工具菜单。

   menu = new JMenu("Tools");

       mi = new JMenuItem("Sort");
       menu.add(mi);
       mi = new JMenuItem("Search");
       menu.add(mi);
      JMenu med = new JMenu("Edit");
        mi = new JMenuItem("Copy");
       med.add(mi);
        mi = new JMenuItem("Paste");
       med.add(mi);
       menu.add(med);
     menubar.add(menu);
Run Code Online (Sandbox Code Playgroud)

注意:我已经编辑了你的代码的最后一部分。只需将工具菜单中的代码替换为此代码即可尝试此操作。如果出现错误,请告诉我。

  • 为什么要在“menubar”中添加三次“menu”?你应该删除它。 (2认同)