私は単純なクライアントサーバープログラムを持っています。 GUI上で「接続」ボタンをクリックすると、新しいスレッドでサーバーに接続し、サーバーからデータを受け取ってGUIに渡したいのですが、どうすればいいですか?Javaの別のスレッドから1つのスレッドのデータを取得するにはどうすればよいですか?
0
A
答えて
3
は、読み取りスレッドへのあなたのGUIオブジェクトへの参照を渡し、読み出しスレッド呼び出しを持っている:あなたがバックグラウンドスレッドで入手可能な情報を持っているとき、あなただけ呼び出すことができますよりも
BackgroundThread background = new BackgroundThread();
backgroundThread.setCallback(new Foo() {
public void updateGUI(Bar bar) {
//...
}
}
彼がデータを受け取ったときのGUIインスタンスのメソッド。
GUIがSwingのGUIである場合、あなたはSwingUtilities.invokeLater()
への呼び出しをラップする必要があります:
Thread readingThread = new MyReadingThread(gui);
readingThread.start();
と読書スレッドで:SwingWorkerを具体的にするために設計されていることを
String data = readData();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
gui.dataHasBeenReceived(data);
}
});
注意この種のユースケースです。
1
一般的には、コールバックオブジェクトを新しいスレッドに渡すことによって、結果が出るたびにそのコールバックを呼び出します。このコールバックはGUIを更新します。
"コールバック"は、あなたのカスタムインターフェイスを実装するオブジェクトで、結果を引数として取り込むことができます。
getCallback().updateGUI(bar);
関連する問題
- 1. Java Android:1つのスレッドから別のスレッドにデータを送信
- 2. 別のスレッドで1つのスレッドでデータを作成する
- 3. Javaでは、各スレッドが1つのコアで専用に実行されるようにスレッドを作成するにはどうすればよいですか?
- 4. 作成されたスレッドとは別のスレッドから呼び出されるイベントハンドラを取得するにはどうすればよいですか?
- 5. スレッドを別のスレッドの前に強制的に開始するにはどうすればよいですか?
- 6. 別のスレッドのコールスタックを取得するにはどうすればよいですか?
- 7. 1つのスレッドで値を変更し、共有メモリを使用して別のスレッドの値を読み取るにはどうすればよいですか?
- 8. 一意のスレッド識別子を取得するにはどうすればよいですか?
- 9. Javaのスレッドからすべての子スレッドを取得するには?
- 10. Javaの別のスレッドからスレッドの変数にアクセスする
- 11. 別のスレッドのデータでアクティビティビューを更新するにはどうすればよいですか?
- 12. Java:スレッドを別のスレッドで監視するにはどうしたらいいですか?
- 13. Quickbooks Onlineから1つのデータを取得するにはどうすればよいですか?
- 14. あるスレッドから別のスレッドにコレクションオブジェクトをJavaスレッドで安全に渡す
- 15. WindowsユニバーサルアプリケーションのUIを別のスレッドから更新するにはどうすればよいですか?
- 16. C#の別のスレッドからリストを更新するにはどうすればよいですか?
- 17. Javaでスレッドをプロファイルするにはどうすればよいですか?
- 18. Javaでスレッドを使用するにはどうすればよいですか?
- 19. Java:スレッドを別のスレッドに渡すスレッド
- 20. Javaのスレッドを2つのスレッドから通知を受け取るようにするには?
- 21. WPFのスレッドとGUIはどのように別のスレッドからオブジェクトにアクセスするのですか?
- 22. ボットからスレッドのURLを取得するにはどうすればいいですか?
- 23. 1つのテーブルビューセルから別のテーブルビューセルにデータを転送するにはどうすればよいですか?
- 24. 1つのモジュールから別のモジュールにデータを送信するにはどうすればよいですか?
- 25. Javaスレッドを停止するにはどうすればよいですか?
- 26. Javaの別のスレッドからすぐにスレッドを強制終了するには?
- 27. スレッド間の同期はどうすればよいですか?
- 28. JavaアプリケーションのMainメソッドからスレッドを実行するにはどうすればよいですか?
- 29. スレッド間でデータを渡すにはどうすればよいですか?
- 30. 他のスレッドからのデータを安全にコントロールするにはどうすればいいですか?
私の簡単なプログラムで完璧に働いた説明とサンプルコードをありがとう。私はSwingWorkerについて聞いたことがありますが、あるスレッドから別のスレッドに短い文字列を送信するだけで、クラス全体を読んで学びたくはありませんでした。 – koleS