0

我在 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 行上放了一个断点,当我在调试模式下单击菜单项时,它甚至都没有到达它。我在这里完全错过了一步吗?

4

1 回答 1

1

Although JMenuItem components offer the addMouseListener method (inherited from java.awt.Component) MouseEvents are only processed for the MenuElements own functional use, i.e. any external MouseEvents will have no effect.

For JMenuItem components, use an ActionListener rather than a MouseListener to listen for user events:

mitemAbout.addActionListener(new ActionListener() {
   @Override
   public void actionPerformed(ActionEvent e) {
      ...               
}
});

or use:

mitemAbout.setAction(myAction);
于 2013-03-11T21:16:31.517 回答