从 FXML 获取对象时 JavaFX 返回 null
JavaFX returning null when getting objects from FXML
好的,所以我做了我的布局,我正在尝试获得 2 个标签、进度条和 2 个文本字段。
我是这样理解的:
@FXML private TextField instDir;
@FXML private TextField jsonDir;
@FXML private ProgressBar progressBar;
@FXML private Label pText;
@FXML private Label error;
但只有 instDir 和 jsonDir 不为空。
我的 FXML 文件:https://hastebin.com/cohuhidobi.xml
我使用对象的 Java class 部分:
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;
}
总是 returns 两者都为 null。
我想要的所有对象都在控制器中注册了
感谢您的帮助!
检查您的控制器是否实现了 Initializable 并具有此结构:
public class FXMLController implements Initializable {
@FXML private TextField instDir;
@FXML private TextField jsonDir;
@FXML private ProgressBar progressBar;
@FXML private Label pText;
@FXML private Label error;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// ...
}
//Getters and setters
}
好的,所以我做了我的布局,我正在尝试获得 2 个标签、进度条和 2 个文本字段。
我是这样理解的:
@FXML private TextField instDir;
@FXML private TextField jsonDir;
@FXML private ProgressBar progressBar;
@FXML private Label pText;
@FXML private Label error;
但只有 instDir 和 jsonDir 不为空。 我的 FXML 文件:https://hastebin.com/cohuhidobi.xml 我使用对象的 Java class 部分:
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;
}
总是 returns 两者都为 null。
我想要的所有对象都在控制器中注册了
感谢您的帮助!
检查您的控制器是否实现了 Initializable 并具有此结构:
public class FXMLController implements Initializable {
@FXML private TextField instDir;
@FXML private TextField jsonDir;
@FXML private ProgressBar progressBar;
@FXML private Label pText;
@FXML private Label error;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// ...
}
//Getters and setters
}