【问题标题】:JavaFx assign data from serial port [duplicate]JavaFx从串口分配数据[重复]
【发布时间】:2018-08-05 23:05:58
【问题描述】:

我正在使用我的 java fx 应用程序从串行端口写入/读取。一切都很好,直到我从端口读取数据。收到数据后,我将其传递给位于控制器中的方法进行处理。将数据传递给控制器​​中的方法后,我试图将其分配到我的文本框中,但它会引发 NPE 异常。我什至尝试使用 Platform.runLater() 但仍然给了我相同的 NPE 消息。请问有什么帮助吗?

//Serial data reader
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_RECEIVED)
        return;
    packet = event.getReceivedData();
    // Also tried this myController.processData(packet); Still NPE
    Platform.runLater(()->
    {
        settingsController.processData(packet);
    });
}


//The method in myController
 @FXML
private JFXTextField dataTextField;

public void processData(int[] packet) {

            dataTextField.textProperty().setValue(String.valueOf(packet[2]));  //Here it throws NPE due to dataTextField
            //dataTextField.textProperty().setValue(String.valueOf(5)); Also tried  a dummy value to find out if it is text field or the packet data. I confirmed it is NPE of dataTextField
            //I also tried this .Still the NPE. Also tried with combobox. so no hope
             Platform.runLater(()->
            {
                dataTextField.textProperty().setValue(String.valueOf(packet[2])); 

            }); 
}

【问题讨论】:

  • 请提供一个minimal reproducible example 来说明问题。
  • 有人将此标记为重复。这不是一回事。在 public void processData(int[] packet){ dataTextField.setText("test") } // 这工作正常,但它不适用于从端口读取返回的数据。
  • 代码有问题,您没有显示,正如我几个小时前已经建议的那样;)

标签: java javafx serial-port javafx-8


【解决方案1】:

您是否尝试过使用

dataTextField.setText(String.valueOf(packet[2]));

还要检查 fxml 文件中的文本字段是否分配了相同的fx:id=dataTextField

发布完整的堆栈跟踪

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多