swing java操作侦听器在菜单上,而不是在菜单项上
我需要启迪
如何将action actionListener事件绑定到菜单,而不是绑定到菜单项 这是(在menuITEM上)有效的演示代码
menuFileItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.out.println("It works");
}
}
);
但是当我尝试同样的方法时,只是在菜单上,它不起作用
menuFile.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.out.println("Plz work... :( ");
}
}
);
是否可以将侦听器添加到菜单?我教过听众可以加入任何东西
# 1 楼答案
如果实例化JMenu类以创建菜单对象,请尝试addMenuListener()方法
# 2 楼答案
我使用这个
addMouseListener()
,因为当您单击一个JMenu
时,它将其标记为蓝色,并在紧接着执行事件我想这就是你想要的效果
在这里,它使用以下代码工作: 我宣布:
# 3 楼答案
您可以将
ActionListener
添加到JMenu
,因为此方法是从AbstractButton
继承的(JMenu Documentation)但是,它不打算这样使用:JMenu ignores ActionEvent。您应该使用
MenuEvent
和MenuListener
# 4 楼答案
根据前面的答案,我在解决方案中添加了一个额外的键侦听器
这是一个方便的功能: