2013-02-24 8 views
8

私自身は、スイングイベントハンドラ(button-clickなど)として常にActionListenerを使用しています。これは、ほとんどのスイングアプリケーションで見た中で最も一般的なリスナーです。使用する方が良い:Action対ActionListener?

しかし、ここでstackoverflowのスイング専門家の中には、ActionListenerではなくActionを使用することがよくあります。私がそうすることによって得られるメリットは?

+1

アクションは共有可能、ブロック可能、設定可能です。 – mKorbel

答えて

10

コンポーネント間で機能を共有する必要がある場合は、Actionをお勧めします。 docs

同じ機能を実行するコンポーネントが2つ以上ある場合は、Actionオブジェクトを使用してその機能を実装することを検討してください。

Actionオブジェクトは、このようなツールバーボタンとしてアクション・イベント・発火コンポーネントの状態だけでなく、アクション・イベント処理するだけでなく、集中型のハンドリングを提供アクションリスナーであると言います、メニュー項目、共通ボタン、およびテキストフィールドがあります。アクションが処理できる状態には、テキスト、アイコン、ニーモニック、有効、選択状態が含まれます。

+1

+1の 'アクション'; ['FileMenu'](http://stackoverflow.com/a/4039359/230513)は基本的な例です。それをやることの利点は、後者をする必要がないことです。 :-) – trashgod

+1

単一のアクションリスナーを作成し、複数のスイングコンポーネントに同じ参照を 'addActionListener()'で追加するのはどうですか?それは同じことではありませんか? –

+4

@ Eng.Fouad:アクションには、アイコン、ニーモニックキー、説明を保持したり、必要な値キーを保持する機能など、ActionListenersで見つからないその他の追加機能があります。 –

関連する問題