我尝试使用setText()方法更改'label'字段的值,该方法在timer调用的方法中。总共,我有3个类1)FXMLDocumentController 2)checkInternetStatus和3)InternetConnectivity,如下所示。
首先,我在FXMLDocumentController的'initialize'方法中调用了timer,如下所示 定时器计时器=新的计时器(); timer.schedule(new checkInternetStatus(),0,5);
然后,它在checkInternetStatus类中调用runnable并返回到第1类中的方法。这里getInternetStatus()是InternetConnectivity类中的一个返回布尔值的方法。
class checkInternetStatus extends TimerTask {
InternetConnectivity obj = new InternetConnectivity();
FXMLDocumentController obj2 = new FXMLDocumentController();
@Override
public void run() {
javafx.application.Platform.runLater(new Runnable() {
public void run() {
obj2.checkInternetStatusFXML(obj.getInternetStatus());
}
});
}
但它会返回Null Pointer Exception,如下所示
线程中的“JavaFX应用程序线程”java.lang.NullPointerException 中的异常
statusText.setText("desired_text");
在FXMLDocumentController中设置所需文本的方法中。 任何人都可以提供帮助,在此先感谢!!