如何使用Java 7将新的实例变量传递给JavaFX Controller

时间:2016-02-08 07:22:16

标签: java javafx

为简单起见,我有一个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中接受这个实例的新创建?

1 个答案:

答案 0 :(得分:0)

重构FXMLDocumentController以便将var存储为可变字段,将标签设置代码重构为方法,并在AnotherClass中的某处添加以下内容:

Variable variable = new Variable();
variable.setName("Test");
this.newInstance.setVariable(variable);