0

我需要创建一个从摇摆按钮按下开始的线程并等待来自 rs232 的输入,处理它并返回String到我的变量。问题是如何做到这一点?

它应该是这样的:

  String myOutputString = waitForInputThread();

或者,如果它可能在摆动面板中制作类似监听器的东西,如果这个waitForInputThread发送中断会做一些事情(例如,如果获取 rs232 输入确实更新了中的项目列表JTable)。

你能给我一些线索、教程、例子等吗?

4

1 回答 1

1

为避免阻塞事件调度线程(即更新 GUI 的线程),请启动一个新线程以与 RS232 交互。类SwingWorker是一种选择,但您也可以轻松地使用普通线程。1阻塞 EDT 会导致您的 GUI 冻结,因此绝不能将它用于冗长的任务。

计算结果后,使用SwingUtilities.invokeLater(). 这可确保在 EDT 上发生 GUI 更改。

1 我倾向于发现通过 an 执行的普通线程ExecutorService更适合单元测试(因为您可以编写一个ExecutorService立即执行的Runnable,避免 JUnit 出现任何讨厌的线程问题)。

于 2013-05-20T11:47:05.060 回答