我正在使用javax.comm软件包从串口读取一些数据。 数据将在SWT上显示为文本小部件。我添加了一个 eventListener到串口对象并发出notifyOnDataAvailable 是的,这样我的应用程序会在数据到达时收到通知。无论如何,在 事件处理程序,我尝试将新读取的数据附加到文本小部件, 但它不会将读取值附加到文本小部件。但是,当我尝试在控制台中打印相同时,它完美地做到了。我有一个类似的应用程序 用AWT写的,它没有这个问题。它有什么东西吗? 如何处理SWT处理主线程的方式?有没有办法解决我的问题 问题
这是我的代码 -
public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE)
{
try
{
byte singleData = (byte)input.read();
// READING THE SERIAL PORT VALUE HERE IN
// TEXT AREA CALLED txtLog
if (singleData != NEW_LINE_ASCII)
{
logText = new String(new byte[] {singleData});
// System.out.print(logText);
txtLog.append(logText);
}
else
{
txtLog.append("\n");
}
}
catch (Exception e)
{
logText = "Failed to read data. (" + e.toString() + ")";
txtLog.setForeground(Color.red);
txtLog.append(logText + "\n");
}
}
}