我有那个java类 . 它在 JavaClassContainer 中初始化 . 问题是它返回错误: java.lang.NullPointerException . 没有将文本设置为 textfield .
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Enumeration;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
public class RXTX implements SerialPortEventListener{
@FXML private static TextField carlos;
// MORE CODE
@FXML
private void GetData(String Data) {
if(Data.contains("Temperature")){
carlos.setText("Hola");
}
}
}
如果我放一个System.Out.Println就可以了 . 所以,问题出在 setText 到 GetData 类的 TextField 中 .
好的,我还会把主控制器:
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
label.setText("Hello World!");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
RXTX main = new RXTX();
main.initialize();
Thread t=new Thread() {
public void run() {
//the following line will keep this app alive for 1000 seconds,
//waiting for events to occur and responding to them (printing incoming messages to console).
try {Thread.sleep(1000000);} catch (InterruptedException ie) {}
}
};
t.start();
System.out.println("Started");
}
}