0

スイング ボタンを押して開始し、rs232 からの入力を待ち、それを処理Stringして変数に戻るスレッドを作成する必要があります。問題は、それをどのように行うかです。

それは次のようなものでなければなりません:

  String myOutputString = waitForInputThread();

または、swing パネルで可能であれば、この送信が中断された場合に何かを行うリスナーのようなものを作成しますwaitForInputThread(たとえば、rs232 入力を取得すると、 のアイテムのリストを更新しますJTable)。

手がかり、チュートリアル、例などを教えていただけますか?

4

1 に答える 1

1

Event Dispatch Thread (GUI を更新するスレッド) のブロックを回避するには、新しいスレッドを開始して RS232 とやり取りします。クラスは 1 つのSwingWorkerオプションですが、通常のスレッドも同じように簡単に使用できます。1 EDT をブロックすると GUI がフリーズするため、時間のかかるタスクには決して使用しないでください。

結果が計算されたら、 を使用して GUI を更新しSwingUtilities.invokeLater()ます。これにより、EDT で GUI の変更が確実に行われます。

1 を介して実行される通常のスレッドのExecutorService方が単体テストに適していることがわかります ( JUnit で厄介なスレッドの問題を回避して、ExecutorServiceをすぐに実行する を記述できるため)。Runnable

于 2013-05-20T11:47:05.060 に答える