好吧,所以我做了我的布局,我试图获得2个标签,progressbar和2个textFields。当从FXML获取对象时,JavaFX返回null
我让他们这样的:
@FXML private TextField instDir;
@FXML private TextField jsonDir;
@FXML private ProgressBar progressBar;
@FXML private Label pText;
@FXML private Label error;
但只有那些不为空是INSTDIR和jsonDir。 我FXML文件:Java类的https://hastebin.com/cohuhidobi.xml 零件在那里我使用对象:
void setProgressBar(float i, float max) {
if(progressBar != null) {
progressBar.setProgress(i/max);
}else{
System.out.println("progressBar is null");
}
if(pText != null) {
pText.setText((int) i + "/" + (int) max);
}else{
System.out.println("pText is null");
}
System.out.println((int) i + "/" + (int) max);
//text = (int)i+"/"+(int)max;
}
它总是返回都为空。
我只想在控制器注册
感谢您的帮助的对象!
在什么时刻,你调用这个方法?你需要调用'FXMLLoader.load()'来让它们初始化。 –
你什么时候调用setProgressBar方法?如果你在构造函数中调用这个@FXML gui的东西还没有初始化。改用[initialize](https://stackoverflow.com/a/34785689/2298490)方法。 – grill2010
@SergeyGrinev我在FXMLLoader.load()后调用它。 –