問題タブ [edt]

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 投票する
4 に答える
9121 参照

java - なぜEDT違反が発生するのですか?

私はCheckThreadViolationRepaintManagerEDT違反を検出するために使用し始めました。

それは不平を言う:

この方法generatePartnerSelectionPanel()では気に入らないので気に入らないからです。JPanel panel = new JPanel();しかし、なぜその周りに問題があるのか​​わかりません。

詳細についてはgeneratePartnerSelectionPanel()、JPanelを生成します(EDTでは実行しません)が、次に、getParameterJPanelをメインのJFrameに追加し、EDTで実行します(を使用invokeLater)。

では、なぜ問題があるのでしょうか。

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

java - Java - SwingWorker - process() メソッドの問題

javax.swing.SwingWorker初めて使用しています。

JLabel次のように、swing ワーカーによって公開された中間結果からa を更新したいと思います。

を更新するためJLabelに、次のようにコーディングしました。

上記のコードは機能しますが、私の問題 (より具体的には、私の疑問) は次のとおりです。

上記の Swing ワーカー タスクは匿名の内部クラスであるため、labelフィールドにアクセスできます。

しかし、swing ワーカー クラスを非インナー クラスにしたい場合はどうすればよいでしょうか。labelprocess() メソッドがアクセスできるように、swing ワーカー クラスのコンストラクターに引数として渡す必要がありますか。

または他の方法はありますか?

Swing ワーカー クラスが内部クラスでない場合、Swing ワーカー クラスの結果から UI コンポーネントを更新するために、他の開発者はどのようなアプローチに従いますか?

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

java - EDT で 2 つの GUI アクションを実行できますか?

JDialog で、ユーザーが JButton をクリックすると、EDT で 2 つの GUI アクションを実行したい:

  1. ユーザーに「間違ったプロセスが終了するまでお待ちください」と伝えるために、別の小さな JDialog をビジー状態のアイコンと共に表示します。
  2. JTable に大量のレコードを挿入する。

両方のアクションを実行しようとすると、期待どおり、「お待ちください」ダイアログが挿入プロセスをブロックします。

ご覧のとおり、両方のアクションを EDT で実行する必要があります。これに対する解決策はありますか?

0 投票する
0 に答える
90 参照

java - java.awt.DesktopをEDTで使用する必要がありますか?

周りを見回すと、EDTでjava.awt.Desktopを使用する必要があるという要件が見つからず、その理由もわかりませんでしたが、明示的に使用されている場所は見つかりませんでした。いいので、結局、awtクラスなので聞いてみようと思いました。

いずれにせよ、公式に言うところはありますか?

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

text-editor - EDT エディター - 最新のアプローチ?

私はかなり前に VMS で EDT エディターを使用していました。この優れたテキスト エディタの最新の実装はありますか? もしそうなら、ソースコードはありますか? Emacs と Vim によって回避されるのでしょうか?

ありがとうございました

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

java - Swing イベント ハンドラーは、EDT のイベントの後にキューに入れる必要がありますか?

Swing イベント処理コードは、EDT のイベントの後にキューに入れる必要がありますか? もしそうなら、イベント ハンドラをスケジュールするのはイベント ソースの責任ですか、それとも後で実際の処理コードをスケジュールするのはイベント ハンドラの責任ですか?

検討:

SNIP 1イベントの受信時にハンドラー コードを実行します。JButtonが によるイベントのスケジューリングを担当する場合、EventQueue.invokeLater()これはおそらく正しいでしょう。SNIP 2イベントを受信し、イベントの受信後にハンドラー コードのスケジューリングを担当します (この特定のイベント タイプの他のすべてのリスナーによって処理されます)。どちらが正しい?

編集: わかりやすくするために、最初のイベント ハンドラーの状態を変更すると、イベント時の元の状態がコンポーネントの他のイベント ハンドラーから隠される可能性があるため、後で EDT でイベント ハンドラーをスケジュールします。

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

java - SwingタイマーでJavaフルスクリーン排他モードを使用する

良い一日!フルスクリーン専用モードの標準スイングタイマーを使用したかったのです。このために、SwingWorkerを適用して、グラフィックモードを設定する必要がある場合のイベントを制御しました。以下のすべてのステップは、runメソッドで実行されます。run()はmainから呼び出されます。1)まず、SwingWorkerオブジェクトを作成し、その2つのメソッド(doInBackgroundとdone)をオーバーライドします。Initは、必要なすべてのグラフィック設定を現在のJFrameオブジェクトに設定し、キーリスナーオブジェクト(screen_listと呼ばれる)をバインドする必要があるため、重要なメソッドです。

2)次に、ActionListenerとKey Listenerを実装するscreenlistenerを作成します。これは、init()メソッドのKeyListenerとしてdispにバインドされています。

3)スイングタイマーを作成して初期化し、起動します。4)そして最後にexecuteメソッドを呼び出します:

私が書いたクラスScreenListenerは、KeyListenerとActionListenerを実装します。ActionPerfomedメソッドで、workerがそのジョブ(initメソッド)を実行したかどうかを確認します。はいの場合、現在の表示モードへの参照を取得して、何かを描画します。

キーボードからのイベントが処理されないのはなぜですか?

0 投票する
5 に答える
482 参照

java - スイングスレッドセーフボイラープレート

簡単にするために、ファイルをダウンロードするアプリケーションを想像してみてください。進行状況を表示する1つのラベルが付いたシンプルなGUIがあります。EDT違反を回避するために、すべての合法的な市民のように、私は1つのスレッド(メイン)でファイルをダウンロードし、別のスレッド(EDT)でGUIを更新します。したがって、これがpseudcodeの関連するチャンクです。

Javaがクロージャをサポートしておらず、コードが非常に明確であるという事実が気に入っています。冗談はさておき、私は疑問に思っています...私はそれを間違っていますか?SwingUtilitiesすべての方法での匿名の実装などで、この醜い定型文をすべて排除することは可能Runnableですか?

私の場合はこれより少し複雑ですが、プロキシなどを実装してオーバーエンジニアリングしないようにしています。

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

javascript - toLocaleString() を使用して JavaScript を介して返された日付から「EDT」を削除する最良の方法

私はJavaScriptに比較的慣れていないので、これは本当に簡単な質問かもしれません. toLocaleStringで返された日付の後に「EDT」の印刷を停止する簡単な方法はありますか? ありがとう!

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

java - Swing では、イベントを EDT イベント キューの一番上に投稿できますか?

イベントをイベントキューの一番下に置くのではなく、InvokeLater() 関数だけが行うことを行う方法を探しています。少なくとも私はそれが私が望むことをすると思います、多分もっと良い方法があります。以下は、私が複製しようとしていることを説明しています。

何年も前に、現在のイベントの処理中に CriticalChore リストに Chore オブジェクトを追加できる機能を備えた Mac で C++ フレームワークを使用していました。これは、Swings EDT に相当するコードの実行中に行います。現在のイベントの処理が終了した後、GetNextEvent() を呼び出す直前に、フレームワークは CriticalChore リストが空かどうかをチェックします。リストにアイテムが含まれている場合は、Perform() (つまり、run()) 関数が呼び出されます。リストが終了すると、すべてのアイテムが削除されました。

この機能は本当に便利でした。早い段階でイベントを処理しているときに、追加のコードを実行する必要があることを知っていることがよくありますが、それは他の多くのコードが処理された後でのみです。しかし、最も重要なことは、EDT キューからの他のイベントが処理される前に、このコードを処理する必要があることです。