問題タブ [swingutilities]
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 - DefaultStyledDocument.styleChanged(Style style)がタイムリーに実行されない可能性がありますか?
を拡張するクラスで断続的な問題が発生していますjavax.swing.text.DefaultStyledDocument
。このドキュメントはプリンタに送信されています。ほとんどの場合、ドキュメントのフォーマットは正しいように見えますが、正しくない場合もあります。フォーマットの変更の一部が適用されていないようです。
私はDefaultStyledDocument.styleChanged(Style style)
コードを見てみました:
SwingUtilities.invokeLater(updateRunnable)
ではなくと呼ばれるという事実invokeAndWait(updateRunnable)
は、ドキュメントがレンダリングされる前にドキュメントに表示されるフォーマットの変更を期待できないことを意味しますか?
その場合、更新が行われるまでレンダリングを続行しないようにする方法はありますか?
java - Java - SwingWorker と SwingUtilities.invokeLater() の違い
SwingWorker
次の目的で使用されます。
- GUI が応答しなくなるのを防ぐために、別のスレッドで実行時間の長いタスクを実行するため
- メソッドを介してタスクの最後に長時間実行タスクによって生成された結果で GUI を更新します
done()
。 publish()
およびメソッドを使用して、タスクによって生成および公開された中間結果を使用して、GUI を随時更新しprocess()
ます。
SwingUtilities.invokeLater()
上記のタスクを次のように実行できます。
SwingWorker.execute()
EDT からメソッドを実行する代わりに、ExecutorService.submit(new MyRunnable())
長時間実行されるタスクを実行できる別のスレッドも作成されるため、実行できます。- タスクの最後に GUI を更新するために、コード (
done()
case1 のメソッドで記述)をタスクの最後に置くことができSwingUtilites.invokeLater(new RunnableToExecuteDoneMethodCode())
ます。 - タスクの途中で GUI を更新するには、 case1 のメソッドを呼び出した場所にコード (
process()
case1 のメソッドに記述)を配置します。SwingUtilites.invokeLater(new RunnableToExecuteProcessMethodCode())
publish()
質問Java - SwingWorker - EDTの代わりに他のSwingWorkerから1つのSwingWorkerを呼び出すことができますかで指定された問題は解決できますが、解決SwingUtilities.invokeLater()
できないため、この質問をしていますSwingWorker
java - Java SwingメインJFrame:SwingUtilities.getAncestorOfClassがnullを返すのはなぜですか?
すべての JComponents をメイン アプリケーション ウィンドウ JFrame 内に保持する Swing アプリケーションを実装するつもりです。すべての JPanel コンストラクターに JFrame を参照するパラメーターを与えるのは、ぎこちない手続き型コードのようです。そのため、いくつかの調査により、ソリューションのように見える SwingUtilities.getAncestorOfClass が明らかになりました。しかし、JPanel コードで JFrame への参照を取得するために使用しようとすると、null が返される理由がわかりません。
アイデアを提供するために、メインの JFrame のコードを次に示します。これは、ViewPanel も作成し、JFrame でそれを plonk します。
ViewPanel の SwingUtilities.getAncestorOfClass への呼び出しが null 呼び出しであるため、[試してみる] ボタンを押すと、NullPointerException が発生します。
この質問にご協力いただける場合は、事前に感謝します。
java - Java マウス イベントの右クリック
私の 3 ボタン マウスでは、 MouseEvent.BUTTON2
= 中クリックとMouseEvent.BUTTON3
= 右クリックです。
これは 2 ボタン マウスの場合ですか?
ありがとう
java - SwingUtilities.invokeAndWait が実行されていません
run() メソッド内のコードは実行されていません。誰でも理由を教えてもらえますか?
エラーをスローします:
java - Java SwingUtilities.invokeLater
こんにちは、私が設計したこのアプリケーションの最終段階で少し苦労しています。
基本的に、ユーザーがボタンをクリックすると、カーソルが「待機中」のバージョンになり、バックグラウンド プロセス (task.execute) が完了すると、カーソルが通常に戻るようにしたいと思います。
task.execute は同じクラスにないため、GUI を変数として認識しないため、「gui.setCursor」を直接呼び出すことはできません。
どうしたらいいのかわからないのでアドバイスいただけると助かります
ありがとう
java - プロセスの実行時に GUI を更新できない (SwingUtilities.invokeLater)
Unable to perform any action before Process.Runtime.exec statement lineでの以前の質問を参照して、コードを 2 つの部分に変更しました。以下のように、外部プログラムを実行するためのすべてのコードを持つスレッド クラス CmdExec です。
また、jtahlborn の回答を参照して、以下のように、GUI 更新の目的で別の Runnable クラスも作成しました。
以下に示すように、実際に process.exec() を実行して外部プログラムを呼び出す前に、SwingUtilities.invokeLater を呼び出して GUI を変更します。
しかし、上記のすべてのコードを使用しても、GUI は更新に失敗し、プロセスが完了した後にのみ更新されます。これらの 2 つの実行可能スレッドとスレッドを調整する特定のステップで間違っているのでしょうか?
あなたの大きな助けと答えを前もって感謝します
P / S:以下のようにGUIでボタンが押されている間にCmdExec()の実行を開始します:
multithreading - SwingUtilities.invokeLater()内のスレッドを強制終了します
スイングアプリケーションがあります。メニューバーのmenuItemをクリックすると、API呼び出しを行おうとしていますが、これには時間がかかると思われます。
API呼び出しが結果を出すまで、Swingアプリがスタック/ハングしたくなかったので、SwingUtilities.invokeLaterを使用して、API呼び出しを処理する新しく生成されたスレッドを分離しました。上記のコードは次のとおりです
API呼び出しスレッドが機能している限り、「API呼び出しが進行中です」というメッセージと「スレッドの中止」ボタンを含むJDIalogを表示します。
Jdialogの「ABortThread」ボタンをクリックしてスレッドを強制終了したいのですが。
それが通常のスレッドである場合、があり、同じ上でThread t = new Thread(new Runnable())
を呼び出します。t.stop
SwingUtilitiesによって生成された特定のスレッドインスタンスを取得して、停止を呼び出すにはどうすればよいですか?簡単に言うと、上記で作成したスレッドを強制終了するにはどうすればよいですか?
java - Swingユーティリティが必要な理由とその使用方法を教えてください。
これは主にここでの私の質問に関するものですが、 Swingユーティリティが必要な理由とその用途がわかりません。私はSwingGUIを設計していますが、SwingUtilitiesが提供するものを見逃したくありません。また、誰かがそのinvokeLater
方法が何をし、どのように機能するかを説明することができます。
java - SwingUtilites:Javaの別のスレッドから値を返す方法は?
Javaでアプリケーションを作ろうとしています。Swingを正しく機能させるために、私はこれを行いました。
この入力文字列を本体で取得するにはどうすればよいですか?