問題タブ [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.
swing - jTextArea の更新に関する問題
RMI チャット プログラムを作成しています。私のプログラムでは、メッセージを送受信できますが、TextArea に表示できません。何がエラーなのかわかりません。Event Dispatch メソッドも使ってみました。役に立ちません。
助けてください...
java - 別のスレッドで計算する必要がある値を取得する方法
スレッドAがスレッドBで計算する必要のある値を必要とする場合が多くあります(最も一般的には、B == EDTです)。次の例を検討してください。
もちろん、匿名の内部クラスはに書き込むことが許可されていないため、これはコンパイルされませんhost
。これを機能させるための最も簡単でクリーンな方法は何ですか?私が知っている方法を以下に含めました。
java - EDT でコードを 1 回だけ実行する正しい方法は何ですか?
Java スレッドを使用して常に何らかの操作を実行する Swing アプリケーションがあります。この操作の結果により、UI のグラフの内容が更新されます。
私が抱えている問題は、EDT が他の操作で肥大化した場合です。この場合、はグラフを更新するExampleThread
さまざまなインスタンスを登録できます。Runnable
私のアプリケーションでは、グラフが結果を表示する前に数回更新されるため、時間の無駄になります。私が望むのは、//update a graph
コードを EDT サイクルごとに最大 1 回実行することです。
Runnable
私の質問は、 aが一度だけ実行されるようにする適切な方法は何ですか?
java - SwingUtilities.invokeLaterを使用した後もGUIがハングするのはなぜですか?
私はActionListener
EDTで呼び出されるこれを持っています。私のplot()関数は計算量が多く、簡単に5秒かかることがあります。GUIが期待どおりにハングしました。コードを追加しましたが、SwingUtilities.invokeLater
まだハングします。ヒーブ計算用に別のスレッドを生成しているので、GUIが応答するべきではありませんか?
java - Event Dispatch Thread (EDT) 例外をキャッチするにはどうすればよいですか?
プロジェクトで通常の例外を処理するためにMyExceptionHandler
実装するというクラスを使用しています。Thread.UncaughtExceptionHandler
私が理解しているように、このクラスは EDT 例外をキャッチできないため、main()
メソッドでこれを使用して EDT 例外を処理しようとしました。
しかし、今までうまくいきませんでした。たとえば、JFrame の初期化中に、次のようにコンストラクターのバンドル ファイルからラベルをロードします。
例外ハンドラをテストするためにバンドル ファイルからキーを削除しましたMyJFrame.title
が、機能しませんでした。例外は通常、ログに出力されました。
ここで何か間違ったことをしていますか?
swing - イベントディスパッチスレッドの「ビジー」の測定
イベントディスパッチスレッドの「ビジー」を測定したいと思います。考えられるアイデアの1つは、次のようなことを行うバックグラウンドスレッドを設定することです。
アイデアは、イベントをEDTに送信してからディスパッチされるまでにかかる時間を測定することです。これにより、UIの応答性について大まかなアイデアが得られます。
これは意味がありますか?同様のことを行うためのより標準的な方法はありますか?
java - Java: debugging with SwingUtilities.invokeLater()
I use SwingUtilities.invokeLater()
frequently. Doing so, however, makes it difficult to debug in certain cases: you can't see a stack trace of the code that called SwingUtilities.invokeLater()
, because that code has already ended its execution.
Are there any suggestions for how to set some sort of context (for debugging purposes only) when calling SwingUtilities.invokeLater()
, so that you can figure out what caused the UI event in question?
java - 非イベント ディスパッチ スレッドの途中で確認ダイアログ ボックスを表示する方法
fun
非イベントディスパッチスレッドによって実行される次のものがあります。スレッドの途中で、私は
- 確認ボックスがポップアップします。スレッドはその実行を中断します。
- ユーザーが選択します。
- スレッドは選択を取得し、実行を継続します。
ただし、イベントディスパッチスレッドによってダイアログボックスが表示される必要があるため、スレッドセーフな方法でそれを行うのは簡単ではないことがわかりました。私は試します
もちろん、これchoice
は最終的には機能しません。ダイアログからの戻り値をそれに割り当てることはできません。
上記の 3 つの目的を達成するための正しい方法は何ですか?
java - SwingEDTを停止する方法
通常のSwingアプリケーションは最初にEDTを開始し、最後のウィンドウが閉じられると、アプリケーションは基本的にSystem.exitで暗黙的または明示的に停止します。
しかし、私の小さなアプリケーションは、実際にはSwingについて何も知らないフレームワークのプラグインです。プラグインを呼び出すと、ユーザーから入力を取得して後で終了するためにダイアログが表示されますが、フレームワークは実行を継続する必要があります。だから私は呼び出すことができませんSystem.exit
。
しかし、そうしないと、EDTは引き続き実行され、フレームワークが終了すると、EDTは引き続き実行され、実行され、実行されます...
したがって、アプリケーションを強制終了せずにEDTを強制終了したいと思います。それ、どうやったら出来るの?
java - JFrame を同期的に提示する
別の複雑な確認 JFrame (ConfirmWin と呼びます) を示すこのメイン JFrame (DrinkChooser と呼びます) があります。
ConfirmWin には、confirm と cancel の 2 つの JButton しかありません。
私はこれをしたい:
(DrinkChooser では、rinksChoosen が Drink[] であると仮定します)
元の DrinkChooser が中断され、ConfirmWin がユーザーの選択を返すという「JOptionPane 効果」にできるだけ近い効果を実現したいと考えています。
ありがとう。