2012-03-23 12 views
1

ActionListenerまたはAbstractActionを使用する必要がありますか?Javaプログラムを閉じるJMenuItemを追加するにはどうしたらいいですか?

EDITED BASED ONが、だから、これはそれを行うための最善の方法である最良の方法を

に答えますか? @kleopatraコメントとして

Action closeaction = new AbstractAction("Afsluiten"){ 

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

    }; 
    menuItem = new JMenuItem(closeaction); 
+1

* *しなければならない「私は..する必要がありますか」?それはそれを行う一般的な方法のための奇妙なフレーズです。 –

+0

一般的なルールは、利用可能な最も高い抽象化を常に求めることです。ルールは_常に_アクションに変換されます。 (あなたのコメントのためには、@SirTroll :-) – kleopatra

+0

@ kleopatraので、これは最善の方法ですか? –

答えて

2

Actionが好ましい抽象化であり、そしてAbstractActionは、右ベースクラスです。ハンドラでは、ゼロ以外のステータスはエラー状態を示します。代わりにWINDOW_CLOSINGイベントを送信することを検討してください(の場合はhere)。

補足:WINDOW_CLOSINGイベントは、アプリケーションが終了する前に何らかのアクションを取る必要がある場合に便利です。 exampleからWindowListenerが効果を確認するために追加します。

this.addWindowListener(new WindowAdapter() { 

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

System.exit(1)はいい方法ではありませんか?私はWindowEvent.WINDOW_CLOSINGを使用する必要がありますか? –

+0

正常終了の場合は、 'System.exit(0)'を使用してください。それはむしろ突然です。以上。 – trashgod

+0

ありがとう –

関連する問題