問題タブ [invokelater]
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 - Later()を呼び出すかどうか
SwingUtilities.invokeLater()の使用法を紹介する例を書いていました。私が書いたこの単純な例(コードを含む)は、invokeLater()の使用を保証するものではないことに気づきました。invokeLater()を使用する必要がある場合がありましたが、いつどこで使用したかを忘れてしまいました。また、EDP以外のスレッドでは、invokeLater()を使用する必要があることも理解していますが、私の場合はそれは必要ないようで、正常に機能しました。このコードでinvokeLater()を使用する必要がない理由を誰かにアドバイスしてもらいたいと思っていました。ショーケースコードにバグがないことを願っています。
ところで、私はLinuxとWindowsでJDK 1.6/1.7を使用しています。
ありがとう。
java - スレッドが SwingUtilities.invokeLater からメインスレッドに戻らない
私はスイングでコードを書いています。awt thread で呼び出すことができる別のクラスのプライベート関数を起動するには。その関数のコードをクラスのSwingUtilities.invokeLater
スレッドに書くだけです。
しかし、この制御を実行した後、メインスレッドに戻りません。誰が何が起こっているのか、これを解決する方法を提案できますか?
multithreading - ブラックベリー画面ナビゲーション
画面名 DownloaderScreenがあります。画面が開始するとファイルのダウンロードが開始され、ダウンロードが完了すると自動的に次の画面に進みます。次のコードを使用しています。
コードは正常に機能し、ファイルのダウンロードを開始し、ダウンロードが完了すると次の画面に進みます。ただし、ダウンロードするファイルがないphraseList
場合、配列の長さはゼロになります。私のコードの問題は何ですか?
java - Event Queue を使用して main() の単純なメソッドを実行する
私は、研究プロジェクトの一環としてある人によって開発された Java アプリケーションに取り組んでいます。主な方法は次のとおりです。
さて、なぜイベントキューを使用する代わりに使用したのかわかりません
EventQueueを使用する意味はありますか?
java - OSGi バンドルで SwingUtilities.invokeLater を使用すると、クラスが見つかりません
(編集: 問題は解決しました - 詳細は最後を参照してください)
OSGi Bundle でSwingJFrame
を作成したいと考えています。WindowAdapter
を使用してこれを行うSwingUtilities.invokeLater
と、WindowAdapter
クラスが見つかりません。それがなくinvokeLater
ても動作します。
WindowAdapter
を使用するときに見つかるようにするには、どうすればよいinvokeLater
ですか? OSGi 環境ではinvokeLater
不適切ですか?
詳細:
カスタム ランチャーで Apache Felix フレームワーク インスタンスを起動し、バンドルをインストールして起動します。私のバンドルの開始方法は次のようになります。
これは MyFrame クラスです。
これはバンドルの私のマニフェストです:
そして、これは私が得るスタックトレースです:
OSGi の初心者である私は、それを修正するためにいくつかのことを試みましたが、これまでのところ解決策を見つけることができませんでした。それでは、StackOverflow で最初の質問をしてみませんか :-)
編集:
30 分間のデバッグの後、問題は完全に私のものであることが判明しました。私のコードはopenImpl
、EDT で呼び出される前に OSGi フレームワークを停止しました。
そのため、Apache Felix フレームワークはBundleWiringImpl
インスタンス (スタック トレースを参照) を破棄済みとしてマークしました。myopenImpl
が EDT で呼び出されると、破棄済みとしてマークされているため、BundleWiringImpl.getClassLoader
返されます。null
最終的に、これは NPE につながります。(Felix ローダーの 50 行を投稿するという余分な手順を実行する必要があったため、エラーが明らかになった可能性があります。)
java - UiApplicationでinvokeLater()を使用する
ブラックベリーのUiApplicationにinvokeLaterステートメントを含むtrycatchブロックを含めることはできますか?
invokeLater mothodを使用する正確な目的は何ですか?また、どのように呼び出されますか?
これがコードです
java - SwingUtilities.invokeLater が期待どおりに機能しない
私は Java で書かれた並行キャンバスに取り組んでいます。これにより、ユーザーは並行してキャンバスに描画していると思うようになります。
ユーザーが認識する並列処理を実現するために、これらの Runnable オブジェクトを作成してもらい、SwingUtilities.invokeLater() を使用して EventQueue に配置します。
それをテストするために、いくつかのスレッドを使用してユーザーをシミュレートし、invokeLater() への各呼び出しの間に少しの遅延 (約 50 ミリ秒) を追加して、実際に描画が並行して行われているように見えるかどうかを確認しました。
問題は、invokeLater() 呼び出しの間に遅延が追加されても問題なく動作していましたが、その遅延を取り除くと、描画が適切に描画されることもあれば、部分的に描画されたり消えたりすることもあれば、描画されないこともあります。
私は何がうまくいかないのかについてかなり困惑しているので、誰かが何かアイデアを持っているなら、私に知らせてください。
以下は、遅延をコメントアウトしたコードです。
乾杯
編集:要求された DrawLineTask のコードは次のとおりです。指定されたパラメーターで標準の Java 関数を使用して線を描画する Runnable クラスの単なる拡張であるため、非常に単純です。
java - InvokeLater GUI をフリーズします
マルチスレッドを使用して、単純なサーモスタットをシミュレートしようとしています。サーモスタットは、ユーザーが要求した値 (以下のコードの「最大」値) に到達するために温度を上げる必要があります。私は2つのスレッドを持っています.1つは温度を上げることを担当し、もう1つは温度を下げることを担当しています。減る条件はガス抜き時のみ。しかし、この概念の実装には問題があります。希望の温度を上げるために上ボタンを押すたびに、GUI がフリーズします。どうすればこの問題を解決できますか?
スレッドがロックを保持していて解放しないようですが、どうすればどのスレッドに気付くことができますか?
java - SwingWorker.doInBackground()内でSwingUtilities.invokeLater()を使用する必要がありますか?
スイングワーカーからEDTを操作する一般的な方法は、get()メソッドを使用することです。しかし、私には次のような長いタスクとコードがあります。
ほとんどのtutotialsでは、戻り値を使用してSwingWorkerからEDTに何かを戻すことをお勧めしますが、次のことを行うことができます。
java - プログレスバー付きのスイングスプラッシュ画面
これは私のスプラッシュ画面コードです、
私がこのように呼び出している主な方法から、
AppFrameのコンストラクターで、splashScreen.setProgress(msg、val)メソッドを呼び出して、プログレスバーを更新します。しかし、スプラッシュは表示されていません。読み込みに時間がかかりますが、フレームがほんの一瞬しか表示されない最後にしか表示されません。しかし、私がこれらの3行を置くと
invokeLater()の外側にスプラッシュ画面が表示され、進行状況バーが適切に更新されます。GUIの更新はinvokeLaterにあるべきだと思います。何が問題なのですか?
ところで、AppFrameは私のアプリケーションのさまざまなパネルをロードします。
編集: 私のAppFrameのモックを以下に示します。