我想创建一个自定义菜单栏类,可以向其中添加关闭和最小化按钮。我想扩展JMenuBar类,但我不知道要覆盖哪些方法或如何覆盖它们。我试着查看java文档,但这只是告诉你一个方法的作用,而不是它的工作原理。有人能帮忙吗?
是的,您可以扩展JMenuBar来创建自己的JMenuBar。为了拥有一些自定义菜单按钮,您应该确保
-
创建一个带有ActionListener参数的构造函数
公共MyMenuBarClass(ActionListener p_objAl){super();this.objal=p_objal;initComponents();}
-
当您初始化菜单按钮时,应该将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); -
实现ActionListener对象来处理命令,例如上面示例中的command1_1。
这就是我如何修改JMenuBar类以排除所有JComponent而不仅仅是菜单的。
public class CustomMenuBar extends JMenuBar{
public JComponent addComponent(JComponent c) {
super.add(c);
return c;
}
}