私は最近Action
、ビジネス機能の有効ステータスを切り替える を実装しました。ユーザーがアクションを呼び出すたびに、ブール値フラグ「willEnable」を設定して、次の呼び出しで機能を有効にするか無効にするかを決定します。同様に、アクション名、簡単な説明、およびアイコンを更新して、新しい状態を反映させます。次に、actionPerformed(...)
メソッド内で、の状態に基づいて別のアクションを実行しwillEnable
ます。
- これは正しいアプローチですか、それともより良いアプローチを推奨できますか (これはよくある問題だと思います)。
JToggleButton
(これは2 状態ボタンとして機能する ことがわかりますが、このアクションをJMenuBar
だけでなくにも表示したいJButton
ので、これは適切ではないと思います)。
編集
具体的には、IDEA のようなアプリケーションはこれにどのように対処しますか? 彼らは(上記のように)複数状態のアクションを使用しますか、それとも異なるものAction
を特定のJButton
usingに交換しsetAction(Action)
ますか?おそらく、このアプローチの方が優れていますか?
Action
アクションのプロパティを更新するとき、それで初期化された GUI コンポーネント(たとえばJButton
) を自動的に再描画することに依存できますか?JButton
その結果、サイズが変更された場合はどうなりますか? 自分で収容を再検証する必要がありJPanel
ますか?- アクションの名前を変更するのは悪いことですか? これが JButton テキストを変更できる唯一の方法ですが、アクションが
ActionMap
.
前もって感謝します。