首页 文章

使用FXML将setText导入TextFiend JavaFX

提问于
浏览
0

我有那个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就可以了 . 所以,问题出在 setTextGetData 类的 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");
    }    

}

1 回答

  • 0

    那么 - 是什么让你相信你的RXTX.carlos注入了一个值?您自己创建实例,因此您有责任将值设置为STATIC字段 .

    我想你应该:

    • 了解如何在IDE中使用调试器

    • 了解有关FXML如何工作的更多信息

相关问题