問題タブ [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.

0 投票する
1 に答える
759 参照

java - 他のすべてのプロセスが完了した後に InvokeLater で表示されるフレーム

この質問のために書いた例では問題を再現できなかったため、これは少し難しいと思います(以下の例は完全に機能します)。実際のアプリケーションで起こりうる問題について、誰かが手がかりを持っていることを願っています。いくつかの長いテキスト操作を実行するアプリを作成しました。各操作は、独自のスレッドで実行されます。ユーザーがすべての進行状況を確認できるように、スレッドによって更新される Frame があります。

問題は、すべてのスレッドがジョブを完了した後にのみ、送信されたすべての更新とともにフレームが表示されることです。
アプリ全体を以下のコードに単純化しましたが、問題はここで機能することです。どんなアイデアでも大歓迎です。

0 投票する
3 に答える
239 参照

java - mainから直接呼び出すのではなく、実行可能にする必要があるのはなぜですか?

java.sunからの単純なコード:

このメソッドをすべてmain()に入れることができますが、それを実行するためにランナブルも実装する別の実行メソッドが必要なのはなぜですか?このコンセプトの背後にある考え方は何ですか?ありがとう。

0 投票する
3 に答える
2095 参照

java - java SwingWorkerがdoInBackground()からランナブルを起動し、イベントディスパッチスレッドに通知する方法

を学び、SwingWorker質問があります
(私はこれに対する答えを探していますが、この設定に具体的に対処していません)

最大同時2〜3接続のみを持つ小さなサーバーを作成しています。内部クラスを持つ
を使用していますJframeSwingWorker

SwingWorkerでdoInBackground()私は持っています:

Connectionrunnableあり、のサブクラスとして宣言されていSwingWorkerます。

が完了する前runnableに、SQLにエントリを書き込みます。
次に、この実行可能ファイルが死ぬ前に、Jframeイベントディスパッチスレッドにヘッズアップを送信するにはどうすればよいでしょうか。
そして、JframeSQLで新しいエントリをチェックし、ユーザーに表示します。

何をするのが最善か:

Jframe1-実行可能なすべてのユーザーがイベントディスパッチスレッド にメッセージを送信できるインターフェイスウィッチを作成します。

2-すべての新しい接続にSwingWorkerinstedofを使用し、サーバーでメソッドを呼び出し、そのメソッドを使用してメソッドを呼び出すrunnablesDone()SwingWorkerJframeEventQueue.invokeLater..

3-またはPropertyChangeListenerを使用します(どういうわけかわかりません)

4-各ランナブルに参照と実行を許可しJframeますEventQueue.invokeLater..

0 投票する
2 に答える
3123 参照

java - JCheckBox の setSelected が効果を失うのはなぜですか?

を に入れたときに(によって設定されたsetSelected())選択を失った理由を誰かに説明してもらえますか? これはバグですか?JCheckBoxJOptionPaneItemListener

このプロセスが で遅れている場合、invokeLater()期待setSelected()どおりに正しく動作するのは興味深いことです。

ここに画像の説明を入力 ここに画像の説明を入力

SSCCEから

0 投票する
2 に答える
111 参照

java - catch ブロックでスイング呼び出しを行う方法

catch ブロックでは、発生しているエラーを表示するために textArea にエラー メッセージを表示したいと考えています。

0 投票する
4 に答える
1376 参照

java - イベントディスパッチスレッド違反を見つける

イベントディスパッチスレッドからすべてのGUI関連のタスクを実行する必要があり、それ以外の場合は奇妙なバグが発生する可能性があることは誰もが知っています。このルールを覚えようとしていますが、最近、気付いていない場所がいくつかあることを認めなければなりません。

このルールのすべての違反を特定して修正できるようにする方法はありますか?ここに関連するfindbugsルールがあることを確認しましたが、すべてのケースを捉えているわけではないようです。違反が発生するたびに例外をスローすることもできれば、それを修正できます(または、例外をキャッチして、ユーザーが関連する問題に遭遇した場合に備えて警告をログに記録できます)。

人々はこれに対して一般的にどのようなアプローチを取りますか?

0 投票する
2 に答える
139 参照

java - JTextField を追加しても何も表示されない

コードを最初の例から 2 番目の例に変更すると、何も表示されません (スクリーンショットを参照してください:

メインクラス:

ピタゴラス (スクリーンショット 1):

ピタゴラス (スクリーンショット 2):

ピタゴラス (スクリーンショット 3):

スクリーンショット 1スクリーンショット 2スクリーンショット 3

0 投票する
3 に答える
559 参照

java - JComboBoxが値をロードしていることを示す方法は?

ネット全体で値が取得されるJComboBoxがあります。

ユーザーがリストを見たいときにドロップダウンを展開すると、その事実をユーザーに示す方法を探しています。その場合にのみ、データが取得されます。

基本的な要件は次のとおりです。

  1. JComboBoxのドロップダウンはEDTをロックしないはずですが、値が存在するまでコンボのアクションは機能しません。
  2. ユーザーは、すべてのデータがいつ取得されたかを知る必要があります。
  3. 表示のサイズ(UI不動産)はできるだけ小さくする必要があります。

ユーザーがコンボの値を確認する(つまり、ドロップダウンリストを展開する)まで、データは取得されないことに注意してください。

私が使用したソリューション:

SwingWorkerUIの応答性を維持するためにを使用しました。コンボボックスは、JIDEとワーカーをリッスンするOverlayableJIDEを使用してオーバーレイInfiniteProgressPanelされました。

0 投票する
4 に答える
5418 参照

java - SwingUtilies.invokeAndWait/invokeLater をいつ使用するか

GUIのビジュアルに影響を与えるスレッドについては、SwingUtilities.invokeAndWait/invokeLaterを使用してEDTで実行する必要があることをどこかで読みました

基本的な GUI の場合、new SwingGUI().setVisible(true);invokeAndWait を使用して EDT の行に次のようなものを配置する必要がありますか? 表示するだけ?

これはカウントされますか?