問題タブ [event-dispatch-thread]
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 - 他のすべてのプロセスが完了した後に InvokeLater で表示されるフレーム
この質問のために書いた例では問題を再現できなかったため、これは少し難しいと思います(以下の例は完全に機能します)。実際のアプリケーションで起こりうる問題について、誰かが手がかりを持っていることを願っています。いくつかの長いテキスト操作を実行するアプリを作成しました。各操作は、独自のスレッドで実行されます。ユーザーがすべての進行状況を確認できるように、スレッドによって更新される Frame があります。
問題は、すべてのスレッドがジョブを完了した後にのみ、送信されたすべての更新とともにフレームが表示されることです。
アプリ全体を以下のコードに単純化しましたが、問題はここで機能することです。どんなアイデアでも大歓迎です。
java - mainから直接呼び出すのではなく、実行可能にする必要があるのはなぜですか?
java.sunからの単純なコード:
このメソッドをすべてmain()に入れることができますが、それを実行するためにランナブルも実装する別の実行メソッドが必要なのはなぜですか?このコンセプトの背後にある考え方は何ですか?ありがとう。
java - java SwingWorkerがdoInBackground()からランナブルを起動し、イベントディスパッチスレッドに通知する方法
を学び、SwingWorker
質問があります
(私はこれに対する答えを探していますが、この設定に具体的に対処していません)
最大同時2〜3接続のみを持つ小さなサーバーを作成しています。内部クラスを持つ
を使用していますJframe
SwingWorker
SwingWorkerでdoInBackground()
私は持っています:
はConnection
でrunnable
あり、のサブクラスとして宣言されていSwingWorker
ます。
が完了する前runnable
に、SQLにエントリを書き込みます。
次に、この実行可能ファイルが死ぬ前に、Jframe
イベントディスパッチスレッドにヘッズアップを送信するにはどうすればよいでしょうか。
そして、Jframe
SQLで新しいエントリをチェックし、ユーザーに表示します。
何をするのが最善か:
Jframe
1-実行可能なすべてのユーザーがイベントディスパッチスレッド にメッセージを送信できるインターフェイスウィッチを作成します。
2-すべての新しい接続にSwingWorker
instedofを使用し、サーバーでメソッドを呼び出し、そのメソッドを使用してメソッドを呼び出すrunnables
Done()
SwingWorker
Jframe
EventQueue.invokeLater..
3-またはPropertyChangeListenerを使用します(どういうわけかわかりません)
4-各ランナブルに参照と実行を許可しJframe
ますEventQueue.invokeLater..
java - JCheckBox の setSelected が効果を失うのはなぜですか?
を に入れたときに(によって設定されたsetSelected()
)選択を失った理由を誰かに説明してもらえますか? これはバグですか?JCheckBox
JOptionPane
ItemListener
このプロセスが で遅れている場合、invokeLater()
期待setSelected()
どおりに正しく動作するのは興味深いことです。
SSCCEから
java - catch ブロックでスイング呼び出しを行う方法
catch ブロックでは、発生しているエラーを表示するために textArea にエラー メッセージを表示したいと考えています。
java - イベントディスパッチスレッド違反を見つける
イベントディスパッチスレッドからすべてのGUI関連のタスクを実行する必要があり、それ以外の場合は奇妙なバグが発生する可能性があることは誰もが知っています。このルールを覚えようとしていますが、最近、気付いていない場所がいくつかあることを認めなければなりません。
このルールのすべての違反を特定して修正できるようにする方法はありますか?ここに関連するfindbugsルールがあることを確認しましたが、すべてのケースを捉えているわけではないようです。違反が発生するたびに例外をスローすることもできれば、それを修正できます(または、例外をキャッチして、ユーザーが関連する問題に遭遇した場合に備えて警告をログに記録できます)。
人々はこれに対して一般的にどのようなアプローチを取りますか?
java - JTextField を追加しても何も表示されない
コードを最初の例から 2 番目の例に変更すると、何も表示されません (スクリーンショットを参照してください:
メインクラス:
ピタゴラス (スクリーンショット 1):
ピタゴラス (スクリーンショット 2):
ピタゴラス (スクリーンショット 3):
java - JComboBoxが値をロードしていることを示す方法は?
ネット全体で値が取得されるJComboBoxがあります。
ユーザーがリストを見たいときにドロップダウンを展開すると、その事実をユーザーに示す方法を探しています。その場合にのみ、データが取得されます。
基本的な要件は次のとおりです。
- JComboBoxのドロップダウンはEDTをロックしないはずですが、値が存在するまでコンボのアクションは機能しません。
- ユーザーは、すべてのデータがいつ取得されたかを知る必要があります。
- 表示のサイズ(UI不動産)はできるだけ小さくする必要があります。
ユーザーがコンボの値を確認する(つまり、ドロップダウンリストを展開する)まで、データは取得されないことに注意してください。
私が使用したソリューション:
SwingWorker
UIの応答性を維持するためにを使用しました。コンボボックスは、JIDEとワーカーをリッスンするOverlayable
JIDEを使用してオーバーレイInfiniteProgressPanel
されました。
java - SwingUtilies.invokeAndWait/invokeLater をいつ使用するか
GUIのビジュアルに影響を与えるスレッドについては、SwingUtilities.invokeAndWait/invokeLaterを使用してEDTで実行する必要があることをどこかで読みました
基本的な GUI の場合、new SwingGUI().setVisible(true);
invokeAndWait を使用して EDT の行に次のようなものを配置する必要がありますか? 表示するだけ?
これはカウントされますか?