Как я могу добавить JMenuItem, который закрывает мою Java-программу? - PullRequest
1 голос
/ 23 марта 2012

Должен ли я работать с ActionListener или AbstractAction?

ИЗДАНО НА ОСНОВЕ ОТВЕТОВ

Итак, лучший способ, это лучший способ сделать это?

Action closeaction = new AbstractAction("Afsluiten"){

        @Override
        public void actionPerformed(ActionEvent ae) {
            System.exit(1);
        }

    };
    menuItem = new JMenuItem(closeaction);

1 Ответ

2 голосов
/ 23 марта 2012

Как отмечает @kleopatra, Action является предпочтительной абстракцией, а AbstractAction является правильным базовым классом. В вашем обработчике ненулевое состояние означает состояние ошибки. В качестве альтернативы рассмотрите возможность отправки события WINDOW_CLOSING, как показано здесь для JDialog.

Приложение: Событие WINDOW_CLOSING удобно, если вашему приложению необходимо выполнить какие-либо действия перед завершением. Добавьте WindowListener к примеру , чтобы увидеть эффект:

this.addWindowListener(new WindowAdapter() {

    @Override
    public void windowClosing(WindowEvent e) {
        System.out.println(e);
    }
});
...