如何创建自定义JMenuBar



我想创建一个自定义菜单栏类,可以向其中添加关闭和最小化按钮。我想扩展JMenuBar类,但我不知道要覆盖哪些方法或如何覆盖它们。我试着查看java文档,但这只是告诉你一个方法的作用,而不是它的工作原理。有人能帮忙吗?

是的,您可以扩展JMenuBar来创建自己的JMenuBar。为了拥有一些自定义菜单按钮,您应该确保

  1. 创建一个带有ActionListener参数的构造函数

    公共MyMenuBarClass(ActionListener p_objAl){super();this.objal=p_objal;initComponents();}

  2. 当您初始化菜单按钮时,应该将ActionListener对象添加到添加的JMenuItem中,例如

    JMenu menu1=新的JMenu("菜单1");this.add(菜单1);JMenuItem menuitem1_1=新的JMenuItem("菜单项1.1");menuitem1_1.setMnemonic(KeyEvent.VK_F10);menuitem1_1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F10,0));menuitem1_1.setActionCommand("command1_1")
    menuitem1_1.addActionListener(this.objal)
    menu1.add(菜单项1_1);

  3. 实现ActionListener对象来处理命令,例如上面示例中的command1_1。

这就是我如何修改JMenuBar类以排除所有JComponent而不仅仅是菜单的。

public class CustomMenuBar extends JMenuBar{
    public JComponent addComponent(JComponent c) {
        super.add(c);
        return c;
    }
}

最新更新