【发布时间】:2011-08-23 20:26:10
【问题描述】:
现在,我有一个 JMenu,其中还有一些 JMenuItems。我希望我的程序在 JMenu 和 JMenuItem 的状态更改为“已选择”时执行一些操作。我不使用 MouseLitener 的 MouseOver,因为我希望用户也能够使用键盘在菜单中导航。现在,我写了这个监听器:
class MenuItemListener implements ChangeListener {
@Override
public void stateChanged(ChangeEvent arg0) {
JMenuItem item = (JMenuItem) arg0.getSource();
if(item.isSelected())
System.out.println(item.getText()+" pressed!");
}
}
当我将此侦听器添加到jmenu时,它正常工作,但是当我将它添加到jmenuiuem时,没有任何反应...我删除如果侦听器删除侦听器,则选择菜单并丢失时,我为jmenu工作正常工作以及 JMenuItem。所以,正如我所看到的,JMenuItem 不能“通过” isSelected() 测试......但是有什么问题呢? :S
【问题讨论】:
-
问题的演变(以及从那里链接的问题):stackoverflow.com/questions/5821701/…(只是为了把这个放在眼里,所以不需要重新开始 :-)
-
仍然认为您应该编辑您的第一个问题以正式包含键盘要求(而不是仅在某些 cmets 中提及) - 可能会立即解决 ;-)
标签: java swing jmenu jmenuitem changelistener