問題タブ [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.
java - InvokeLater によって JFrame が正しく表示されないのはなぜですか?
OK、ウェブ全体で検索を読みましたが、問題の解決策をまだ見つけていません。おそらく単純なものが欠けているため、ここにいます...
修理事業の作業指示を処理するかなり大規模なプロジェクトがあります。それはすべてデータベースに接続されており、多くのページのコードとクラスです。しかし、基本的にノート領域で新しいメッセージをチェックする短いコードをフロント エンドに追加しただけです。
とにかく、2 つのJLabelを持つ単純なJFrameを表示し、別のスレッドがデータベースにクエリを実行します。これはすべて、プログラムの開始時に発生します。問題は、私の小さな「お待ちください」JFrameがフレームを表示しますが、待機中 (データベーススレッドではなく、プログラムの残りのロードです)、ガッツもバックグラウンドもJLabelも表示されないことです。しかし、それまでにはその要点がありません。
以下のサンプルプログラムを書きました。単純なJFrame (CheckingMessagesGUI: 2 つのJLabelを持つJFrame、それ以上のものは何もない) を表示し、5 秒間スリープしてから、サンプル (メイン プログラム) JFrameを表示し、この例では即座に閉じます ( )。もっとたくさん。私が見つけたのは、それが問題を引き起こしているようだということです。スリープタイマーが切れるとウィンドウが表示されますが、それを表示するコードはコマンドの前に与えられており、その順序で実行する必要がありましたか?System.exit(0)
invokeLater
Thread.sleep
私の質問は、なぜJFrameinvokeLater
が正しく表示されないのですか?
その目的はinvokeLater
、項目が正しい AWT イベント スレッドで実行されるようにすることであると理解しています。これにより、このウィンドウが正しく描画されると思います。とにかく、明らかな何かが欠けていると確信しています。以下のコードの一部をコメントアウトしましたinvokeLater
が、正しく実行されますが、元に戻すと...
よろしくお願いします。
更新: 明確にするために、Thread.sleep()
すべてをブロックすることを認識していますが、スリープを呼び出す前に CheckingMessagesGUI が既に完全に描画されているべきではありませんか? それが問題です。
java - このjavaxのswingメソッドを誰か説明してもらえますか?
この単純なコードを理解するのに苦労しています:
誰かがそれがどのように機能するかを説明してもらえますか(私は初心者なので簡単に)?この短いコードは、この大きなコードの一部です。
具体的には、次の質問があります。
- 「public void run」は新しいメソッドを定義しますか? その場合、別のメソッド内で定義されているのはなぜですか (参照用に「より大きなコード」を参照してください)。
- 「public void run」が新しいメソッドを定義する場合、1 行のコード (createAndShowGUI) のみを含むメソッドを定義する理由は何ですか?
- 「invokeLater」は何をしますか? これは実際、私にとって最も複雑な質問です。
私は新参者であり、「特別な」「技術的な」言葉を使用すると、さらに多くの疑問が生じることをもう一度強調したいと思います。
あなたが私を助けることに決めたら、前もってありがとう!
java - ダイアログを 1 つずつ表示するには、invokeLater を使用します
2 つの異なるアクション リスナーで、いくつかの条件が満たされたときにダイアログが表示されます。両方のアクション リスナーがダイアログを表示する必要がある場合、2 つのダイアログが同時に表示されます。しかし、私はそれらを1つずつ表示したいと思います。
簡略化されたコード:
これら 2 つの「SwingUtilities.invokeLater」呼び出しは、異なるクラスにあります。
java - Java SwingUtilities.invokeLater
こんにちは、私が設計したこのアプリケーションの最終段階で少し苦労しています。
基本的に、ユーザーがボタンをクリックすると、カーソルが「待機中」のバージョンになり、バックグラウンド プロセス (task.execute) が完了すると、カーソルが通常に戻るようにしたいと思います。
task.execute は同じクラスにないため、GUI を変数として認識しないため、「gui.setCursor」を直接呼び出すことはできません。
どうしたらいいのかわからないのでアドバイスいただけると助かります
ありがとう
java - BlackBerry-スレッドが応答しない
この質問が少し曖昧であると申し訳ありませんが、デバッグから有用な情報を得ることができませんでした。
new Thread()。Startを使用して呼び出すスレッドがあります。その後、短時間実行され、次のメッセージが表示されます。
キャッチされない例外:アプリケーション「myappname(201)」が応答していません。プロセスが終了しました
イライラするのは、同じプロセスをスレッドなしで実行できることです。これにより、アプリケーションがロックされますが、Eclipseコンソールからエラーなしで動作していることがわかります。だから私はそれらが私がスレッドで使用している関数のエラーではないことを知っています。
「InvokeLater」関数を使用してGUIをスレッドの進行状況で更新することに問題があるのではないかと思いました。これをかなり激しくスパムしており、スレッドが破壊されるのではないかと心配しています。
助言がありますか?
私の投稿を拡張するために、問題は私が他のスレッドからこのコードをALOTと呼んだことが原因でした:-
これは、私のアプリケーションをすぐにクラッシュさせるキューを構築していました。
このオプションに対する私の解決策は、このコードを関数に追加してイベントスレッドを使用することでした:-
java - Java Swing EDT と並行性
invokeLater() Runnable で同期性を確保する必要があるかどうか疑問に思っていました。
デッドロックが発生しており、並行性を維持しながらそれを克服する必要があります。
これは良いコードの例ですか?:
text
かなり悪い例で申し訳ありませんが、は別のスレッドによって変更されており、注入できず、正しい値に依存していると想定する必要があります。
これは適切な解決策ですか、それとも、同期されたコードを未知のコンテキストに送信することで、意図せずにデッドロックの問題を引き起こすのでしょうか..?
ありがとう。
java - JavaスレッドはinvokeLater()とどのように同期しますか?
を使用してJFrameを開始する非GUIスレッドがあります
IBM1622GUIのコンストラクターの一部は、それ自体の「モデル」をインスタンス化します。これには、非GUIスレッドがアクセスする必要があります。
非GUIスレッドが「後で呼び出された」新しいGUIと同期する正しい方法は何ですか?(もちろん、同期がないと、IBM1622GUI.getModel()
nullが返される傾向があります。)
java - Javaで「イベント駆動型」のバックグラウンドスレッドを作成するにはどうすればよいですか?
invokeLater()
作業単位をAWTEDTに送信するためのシンプルさが気に入っています。バックグラウンドスレッド(SwingWorkerなど)に作業要求を送信するための同様のメカニズムがあると便利ですが、私が理解しているように、これらには、invokeLater()が依存するイベントキューイングおよびディスパッチメカニズムはありません。
その代わりに、他のスレッドがメッセージを送信するブロックキューをバックグラウンドスレッドに与えることになり、スレッドは基本的に受信ループを実行して、メッセージが到着するまでブロックします。
実際、これは、バックグラウンドスレッドでEDTのような動作を実装する方法とまったく同じである可能性があります(またはそうなるでしょうか?)。一方、私はスレッドが単に不活性にぶら下がっていて、空の目に見えないイベントディスパッチキューからディスパッチされたときに「ワークドロップレット」を処理するというシンプルさが好きです。Javaは、そのような「イベント駆動型ワーカースレッド」を作成する方法を提供しますか?それとも、結局のところ、メッセージキューはこれを行う正しい方法ですか?invokeLater()
また、関連して、メッセージパッシングの手法には欠点がありますか?
java - SwingUtilities.invokeLater() に相当する JavaScript
JavascriptのJavaのinvokeLater()
メソッドに相当するものはありますか?SwingUtilities
更新 1
それで、setTimeout()
ゼロ遅延で とまったく同じになりinvokeLater()
ますか?
java - 動的 JTree と SwingUtilities.invokeLater() は何もしません
動的 JTree を作成するために、この Web サイトの「4.2 OutlineNode.java」の章にある動的 JTree に関するチュートリアルを読んでいました。
今、私はそれを実装しましたが、GUI スレッドでのデータの読み込みには時間がかかり、醜いことも認識しています。TreeNode
したがって、子を展開して要素をツリーに追加するスレッドを追加しました。
スレッドがなくても問題なく動作します。スレッドを追加してadd
-calls を に入れるSwingUtilities.invokeAndWait(...)
と、子は展開されているように見えますが、ツリーには表示されません。
私はすでに試してみましrevalidate()
たrepaint()
が、何の効果もありませんでした。
これらの要素を表示する方法はありますか?
前もって感謝します。