問題タブ [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 - Swing で ActionListner インターフェイスの代わりにブール変数を使用する
ちょっとした質問がありますが、シナリオを説明させてください。私は秒単位でタイマーを開始する「開始」という名前のボタンがあるswing jframeを持っているので、開始をクリックするたびに、ボタン自体を「リセット」に変換します。 "始める"。私の懸念は、これらの両方のシナリオに対して、ActionListener インターフェイスを実装する 2 つのクラスを使用する 2 つのコード セットを実行する必要があることです。ActionListener を実装する同じクラスにこれら 2 つのコード セットを含め、コードのブロックを切り替える方法はありますか?ボタンの変化に応じて値が変化するブール変数に依存します。
試してみましたが、アプリケーションがフリーズしたり、期待どおりに動作しないなどのパフォーマンスの問題に直面しています。
以下のコードを確認してください。
java - アクション クラス内の KeyListener setAction() の使用時に聞こえない
以下を機能させる方法についてアドバイスをいただければ幸いです。
もともと、私のすべてのアクションは GUI に詰め込まれていました。その後、プロジェクトが進むにつれて GUI がかなり大きくなりました。そのため、これらすべてのアクションを独自のクラスに移動しました。これを行うと、いくつかの側面が可視性を失います。うまくいけば、すべての可視性の問題を捉えることができました。これは確信しています。
今問題。
JButtonにsetAction()呼び出しを実装すると、アクションが機能するようになり、それがMouseListenerまたはMouseMotionListenerのみの場合にうまく機能します。ただし、KeyListenerコードには達していません。//Debug Linesに注意してください。
コード #1 の下 - GUI クラスのコード
コード #2 の下 - RotateAction クラスのコード
注: KeyListener を GUI に残し、アクションに持ち込まなかった場合に、他のアクションが機能しています。
では、なぜ MouseListeners が機能し、KeyListeners が機能しないのでしょうか?
java - Java GUI の更新のトリガー
これにはおそらくより良い質問/回答がありますが、私が見つけたことがうまくいかず、Googleクエリの質問の言い回しに問題がありました. 基本的に、xml ファイルからデータを取得するいくつかのパネルとコンポーネントを含む JFrame があります。JFrame のインスタンス変数を使用して、private Date focusDate = new Date();
各パネルに表示する日付の情報を格納します。これまでのところ、問題ありません。
私の問題は、「focusDate」を変更した後、ナビゲーション コンポーネントのさまざまなアクションを更新するように設定しようとしているということです。NavButtons navPanel = new NavButtons(focusDate);
内部クラスとして設定した JPanel にツールバーがあり、コンソールが変更を報告していますが、メソッドを呼び出すときにfocusDate
JFrame を取得できません。validate(), repaint(), etc...
setFocus(Date d)
それが役立つ場合は、コードをさらに含めることができますが、問題の方法は次のとおりです。
コンストラクターで ActionListener を設定する方法は次のとおりです。
私はスイングにあまり詳しくないので、これは私が得ていない小さな詳細だと確信していますが、引数の受け渡しを再トリガーし、フレームの子コンポーネントをアマチュアに更新する方法を誰かが説明できる場合よろしくお願いします。
更新 ここにJFrame全体があります
@MadProgrammerが指摘したように、日付を別のオブジェクトに保存する必要があります(ここに表示):
フレームを次のように編集しました。
まだ正しいことをしていませんが...
java - setEnabled(false) を使用してツールバー ボタン (アクション) を無効にできない理由
action.setEnabled(false) を使用して無効にしようとしているツールバー ボタンがありますが、無効にすると次のエラーが発生します。
これは、次のコードを呼び出した後に発生します。
しかし、actionPerform メソッド内で実行すると、エラーは表示されません。
イベントスレッド外でアクションを有効/無効にする適切な方法は何ですか?
アップデート:
私も独自のアクションイベントを作成し、actionPerformed 内で setEnable を使用しようとしましたが、そのようなイベントは機能しません。それでも同じエラーが表示されます
.........