我在WindowBuilder for Eclipse中创建了一个Java应用程序。我建立了一个菜单,并在其中一个菜单项上添加了mouseclicked事件。
JMenuItem mitemAbout = new JMenuItem("About");
mitemAbout.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
JOptionPane.showInternalMessageDialog( form, "Message", "title", JOptionPane.PLAIN_MESSAGE);
}
});
mitemHelp.add(mitemAbout);
我在JOptionPane行上放置了一个断点,当我在调试模式下单击菜单项时,它甚至都没有到达断点。
我在这里完全错过了一步吗?
最佳答案
尽管JMenuItem
组件提供了addMouseListener
方法(继承自java.awt.Component
),但MouseEvents
仅出于MenuElements
自身功能使用而处理,即任何外部MouseEvents
均无效。
对于JMenuItem
组件,请使用ActionListener
而不是MouseListener
来监听用户事件:
mitemAbout.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
...
}
});
或使用:
mitemAbout.setAction(myAction);