java - 当我的体重秤关闭时,我的 JFrame 卡住

标签 java swing jframe

我有一个java应用程序,我正在开发一个场景,如果我的体重秤关闭,我的应用程序可以工作。但是当我关闭体重秤时,我的 JFrame 卡住了,是否有此错误的代码?这是代码 系统在第 4 行卡住。

serialPort.openPort();//Open serial port
serialPort.setParams(9600, 8, 1, 0);//Set params.
serialPort.writeBytes("R".getBytes());
String a = serialPort.readString(13).trim();

最佳答案

嗯,看起来您是在 UI 线程中执行此操作。您基本上应该避免在 UI 线程中执行 I/O,因为这意味着当 I/O 等待时,您的 UI 将无响应。

相反,您应该使用异步 I/O,或者在单独的线程中执行所有 I/O,但请记住将所有结果编码(marshal)回 UI 线程,因为您不应该执行任何 UI 工作不在 UI 线程上。请参阅Swing concurrency tutorial了解更多详情。

顺便说一句,我强烈建议不要在不指定编码的情况下调用getBytes() - 你真的不想使用平台编码。 (在这种情况下,我怀疑你知道你想要写的单个字节,所以我会直接写......)

关于java - 当我的体重秤关闭时,我的 JFrame 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33075388/

相关文章:

java - Maven : Missing artifact com. sun :tools:jar:1. 6.0 POM.xml 编译时异常

java - SQLite 的 Android Spinner 表现得很奇怪

java - JTextArea 始终为空?

java - 带延迟的 while 循环使 JFrame 无响应

java - JPA : reference to a generated JoinTable

Java定时器: Terminating under weird circumstances,解释?

java - removeAll 不在下次验证时删除?

Java - JTextField 填充所有框架

java - 拖动未修饰的 JFrame 并调整其大小

java - Spring Data JPA - 数据库问题连接不可用,请求在 30000 毫秒后超时