問題タブ [abstract-action]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AbstractAction の実行後に特別なメソッドを呼び出す必要があります
あいまいな質問タイトルで申し訳ありませんが、通常、私はそのようなことはしません。だから私は次の問題があります:
各メニュー項目が特定のアクションに関連付けられている特定のアプリの popupmenu を設計しています。
AbstractAction
メニュー項目を追加して何らかのアクションに関連付けるタスクに使用される場所を読みました。実際には、そのようなアクションが 2 つだけではなく、数十個必要です。
問題はcleanup
物です。これらのアクションのいずれかcleanup
が選択された後である必要があります。これは、上記の方法を続けると、それぞれについて書く必要があることを意味します。cleanup()
AbstractAction
何度も何度も書くのを避ける (簡単/エレガント/素敵な) 方法やパターンはcleanup()
ありますか? つまり、アクションのみを取得し、実行後に自動的に呼び出す何かを設計することは可能cleanup
ですか?
java - ボタンがクリックされた後 (つまり、アクションが実行された後) にボタンの背景を変更する
クリック後に JButton の背景を変更しようとしています。現在、私のボタンは GridLayout (3x3) に配置されており、次のようになっています。
これは動作しません。実行されたアクション内から画像の背景を操作するにはどうすればよいですか?
java - 内側の Action クラスから外側のクラスのメソッド getContentPane() を呼び出す
内側の Action クラスから外側のクラスのメソッド getContentPane() を呼び出したい。コードが機能しない理由がわかりません。
java - AbstractAction が actionPerformed() を実装しないのはなぜですか?
クラスAbstractAction
は interface を実装していますAction
が、 inには interface を継承Action
するメソッド があり
ます クラスが実装しているインターフェイスは、そのインターフェイスのメソッドのすべての実装を提供する必要があることを知っていますしかし、 in
の実装がないことがわかりました。なぜですか?actionPerformed(ActionEvent e)
ActionListener
actionPerformed(ActionEvent e)
AbstractAction
java - Action と ActionMap - この動作について説明してください
を持っていますAction
次に、それを Button と ActionMap に追加します
System.out.println("Action [" + e.getActionCommand() + "] performed!");
アクション内にトレース ( ) を入れました。マウスでボタンを押すと表示されます
しかし、私が使用するF1と、次のように表示されます:
なんで?
java - AbstractAction の名前を変更する
を使用して取得できる Action にバインドされた JMenuItem がありますitem.getAction()
。アクション名は、たとえば anonymous を使用して、アクションを作成するときに設定されnew AbstractAction(String text, ...)
ます。テキスト フィールドは、ResourceBundle とローカライズ情報に従って設定されます。ローカライズを変更したい場合は、Action.NAME フィールドを変更して、適切なローカライズされた名前が表示されるようにします。名前を取得することはできitem.getAction().NAME
ますが、フィールドは最終的なものであるため変更できません。
どうすれば名前を変更できますか?
java - Swing でアクションを整理するにはどうすればよいですか?
現在、匿名の ActionListeners を置き換えています
アクションを表すクラスファイル:
ただし、私の GUI は多くのアクションを実行できます (例: CreatePersonAction、RenamePersonAction、DeletePersonAction、SwapPeopleAction など)。
これらのクラスをまとまりのある構造に編成する良い方法はありますか?
java - JPopupMenu からメニュー項目を削除または無効にする方法は?
JPopupMenu
アクションが発生するたびにメニュー項目を無効にするか、可能であれば削除したいと考えています。これを試してみたところ、removeCommentAction
オブジェクトはメニューの位置 4 に追加されますが、位置 4 のメニュー項目は削除されません。メニュー項目メソッド setEnabled については知っていますが、この場合、AbstractAction
オブジェクトを使用してこれをどのように実装できますか?
ありがとうございました。
java - Java:AbstractAction オブジェクトから GUI コンポーネントを参照する方法は?
別の GUI オブジェクトの状態に応じて、他の GUI オブジェクトの動作を変更する必要があることがよくあります。たとえば、ボタンが押されると、ラベルの名前が変わります。ただし、AbstractAction オブジェクトを使用する場合、AbstractActionJButton myButton = new JButton(myButtonAction);
から継承するオブジェクト内の GUI オブジェクトへの参照が必要です。GUI で AbstractAction オブジェクトを作成し、必要なすべての GUI 参照を AbstractAction オブジェクトに渡す必要がありますか?それとも悪いスタイルと見なすことができますか?
より具体的にするには:
java - キーバインドの使用
キーバインドの背後にある基本的な概念を学ぼうとしているだけで、非常に基本的なコーディングを行っています。すべてが非常に簡単に思えますが、ロジックまたは構造に何か問題があり、コードが思いどおりに実行されていません。
これが私のコードです
したがって、それはかなり単純なはずです。ご覧のとおり、Enter キーを押すたびに「Enter キーを押しました」と出力しようとしていますが、何も出力されません (上のコードに示されているボタンをクリックしない限り)。また、Eclipse では、EnterAction クラスに黄色の下線が引かれています。正しく呼び出されていない可能性があると思いますが、そうでない理由はわかりません。
どんな助けでも大歓迎です、ありがとう。