Java在另一个类中创建菜单,添加到框架

标签 java menuitem menubar

我尝试在另一个类中创建一个菜单并将其添加到我的框架中,但它不起作用(没有添加)。能帮我看看代码有什么问题吗,谢谢。

类测试:

public class Test extends JFrame {

    public Test() {                
        MenuBar menuBar = new MenuBar();                
        setJMenuBar(menuBar);            
        pack();
        setVisible(true);
    }
 }

类(class)菜单:

public class MenuBar extends JMenuBar {

    JMenuBar menuBar;
    JMenu menu;

    public MenuBar() {
        menuBar = new JMenuBar();
        menu = new JMenu("File");
        menuBar.add(menu);            
        MenuItem menuItem = new MenuItem();
        menu.add(menuItem);   
    }
}

类菜单项:

public class MenuItem extends JMenuItem {

    JMenuItem menuItemUndo;
    JMenuItem menuItemRedo;

    public MenuItem() {
        menuItemUndo = new JMenuItem("Undo");
        menuItemRedo = new JMenuItem("Redo");
    }    
 }

最佳答案

MenuBar 扩展了 JMenuBar,因此您不必在其构造函数中创建新的 JMenuBar。这更有意义:

public class MenuBar extends JMenuBar {

    JMenu menu;

    public MenuBar() {
        menu = new JMenu("File");
        this.add(menu);            
        .....
    }
}

MenuItem 类也是如此。

public class Undo extends JMenuItem {

    public MenuItem() {
        this.setText("Undo");
    }    
}

关于Java在另一个类中创建菜单,添加到框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30027010/

相关文章:

java - 如何转换字符串 (hh :mm) to date with current date

java - setEnable(false) 不会阻止 JMenuItem 使用 WindowsLookAndFeel 突出显示

c++ - 在 Win32 C++ 代码中的哪个位置放置 SetMenuItemInfo() 以根据焦点启用/禁用?

ide - VS2012中可以关闭菜单上的所有大写吗?

java.lang.NoClassDefFoundError : org/apache/poi/ss/usermodel/ExtendedColor

Java 将输入从终端传递给函数

java - Hibernate删除了一条记录,但是记录并没有消失?

java - Android - MenuItem onOptionsItemSelected 方法不起作用但未返回任何错误

objective-c - 如何在 Mac OS 中显示菜单栏图标