菜单项的MenuListener或ActionListener

时间:2014-04-08 03:12:27

标签: java swing actionlistener

这是我的代码:

menuBar = new JMenuBar();
file = new JMenu("File");
options = new JMenu("Options");
help = new JMenu("Help");
editOptions = new JMenu("Change settings...");
close = new JMenu("Exit");

close.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e) {
           System.exit(1);
      }
});

然而,这不起作用。我也尝试过使用这样的menuListener:

menuBar = new JMenuBar();
file = new JMenu("File");
options = new JMenu("Options");
help = new JMenu("Help");
editOptions = new JMenu("Change settings...");
close = new JMenu("Exit");

close.addMenuListener(new MenuListener() {
      @Override
      public void menuSelected(MenuEvent arg0) {
            System.exit(1);
      }

      @Override
      public void menuDeselected(MenuEvent arg0) {
      }

      @Override
      public void menuCanceled(MenuEvent arg0) {
      }

});

但是,一旦菜单退出"退出"突出显示。点击时我需要它退出。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的ActionListener无效JMenu ignores ActionEvent

如果您希望程序退出,请单击“关闭”按钮,然后使用MouseListener:

    close.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            System.exit(1);
        }
    });