为简单起见,我有一个JavaFX应用程序,允许您从2个不同的类设置/获取名称,并在其场景标签上显示获取名称。这没有问题,但我不能做的是如何将一个新的实例变量从另一个类“AnotherClass”传递给JavaFX FXML控制器?
从FXML控制器中我做了以下内容来引用新的实例变量。
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("Hello ");
Variable var = new Variable();
BaseLine base = new BaseLine();
var.setName("Rob");
base.printout(var);
label.setText(base.printout(var));
label.setText(label.getText() + base.set(var));
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
正如你在FXML控制器中看到的,我创建了2个类的2个实例来处理set / get Name
public class BaseLine {
String printout(Variable sg){
System.out.println("My Name is: "+ sg.getName());
return sg.getName();
}
String set(Variable sg){
sg.setName("Bob");
return sg.getName();
}
public class Variable {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
现在这是我的问题,从AnotherClass如何将新实例传递给JavaFXML Controller?
public class AnotherClass {
FXMLDocumentController newInstance = new FXMLDocumentController();
}
我怎样才能在FXMLDocumentController中接受这个实例的新创建?
答案 0 :(得分:0)
重构FXMLDocumentController
以便将var
存储为可变字段,将标签设置代码重构为方法,并在AnotherClass
中的某处添加以下内容:
Variable variable = new Variable();
variable.setName("Test");
this.newInstance.setVariable(variable);