我有一个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();发布于 2015-10-12 15:29:08
嗯,看起来你是在UI线程中做这件事。基本上,您应该避免在UI线程中执行I/O,因为这意味着当I/O处于等待状态时,您的UI将不响应。
相反,您应该使用异步I/O,或者在单独的线程中执行所有I/O,但请记住将所有结果封送回UI线程,因为您不应该在UI线程之外执行任何UI工作。有关更多详细信息,请参阅Swing concurrency tutorial。
顺便说一句,我强烈建议不要在不指定编码的情况下调用getBytes() -您真的不想使用平台编码。(在本例中,我怀疑您知道要写入的单个字节,因此我将直接写入...)
https://stackoverflow.com/questions/33075388
复制相似问题