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