【发布时间】:2016-01-17 01:46:38
【问题描述】:
我无法设置文本字段的文本。没有错误,但文本字段仍然为空。 程序的其余部分正在运行,该方法被调用并且 System.out.println(...) 打印正确的文本。 所以问题是,无法设置文本字段的文本。即使我只是写 textField.setText("0");文本字段仍然是空的。 当我在 public void initialize(...) 下设置文本字段的文本时,它也可以工作。那么为什么它在 setCurrentInfo 中不起作用呢?
@FXML
private TextField textField;
private Info currentInfo;
@Override
public void initialize(URL url, ResourceBundle rb) {
}
public void setCurrentInfo(Info currentInfo) {
textField.setText(currentInfo.getpw1());
System.out.println(currentInfo.getpw1());
this.currentInfo = currentInfo;
}
调用 setCurrentInfo 的控制器部分:
@FXML
private void handleBtn1(ActionEvent event) throws Exception{
Info info = new Info(textFieldA.getText(), textFieldB.getText());
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("FXMLPassword.fxml"));
loader.load();
Stage stage;
Parent root;
if(event.getSource()==btn1){
//get reference to the button's stage
stage=(Stage) btn1.getScene().getWindow();
//load up OTHER FXML document
root = FXMLLoader.load(getClass().getResource("FXMLPassword.fxml"));
}
else{
stage=(Stage) btn1.getScene().getWindow();
root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
}
//create a new scene with root and set the stage
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
FXMLPasswordController passwordController = loader.getController();
passwordController.setCurrentInfo(info);
}
【问题讨论】:
-
你从哪里打电话给
setCurrentInfo(...)?您可以在问题中包含您调用它的代码吗? -
来自另一个控制器。但它肯定被称为否则 Println 不会打印正确的文本。
-
你是在
FXMLLoader创建的这个控制器的实例上调用它吗?如果您将edit 问题并包含调用该方法的代码,包括您如何获取对控制器的引用,这将真正有助于诊断问题。 -
好的,谢谢。见答案。