定义模型类:
public class Model {
// Define properties, for example:
private StringProperty text = new SimpleStringProperty();
public StringProperty textProperty() {
return text ;
}
public final String getText() {
return textProperty().get();
}
public final void setText(String text) {
textProperty().set(text);
}
// other properties...
}
实例化在你ScreensController
类,并揭露它:
public class ScreensController extends StackPane {
private final Model model = new Model() ;
public Model getModel() {
return model ;
}
// other code as before...
}
现在你只需绑定的东西放在一起:
public class ScreenController2 implements ControlledScreen, Initializable {
private ScreensController myController ;
@FXML
private TextField textField ;
// other code...
@Override
public void setScreenParent(ScreensController parent) {
this.myController = parent ;
// Either:
myController.getModel().setText(textField.getText());
textField.textProperty().addListener((obs, oldText, newText) ->
myController.getModel().setText(newText));
// or, depending on the exact behavior you want:
myController.getModel().textProperty()
.bindBidirectional(textField.textProperty());
}
// ...
}
和
public class ScreenController3 implements ControlledScreen, Initializable {
private ScreensController myController ;
@FXML
private TextField textField ;
// other code ...
@Override
public void setScreenParent(ScreensController parent) {
this.myController = parent ;
// Again, replace the next two lines with a bidirectional
// binding if that is the behavior you want
textField.setText(myController.getModel().getText());
myController.getModel().textProperty().addListener((obs, oldText, newText) ->
textField.setText(newText));
}
// ...
}
阅读http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml/14190310#14190310,看看是否有帮助。 – 2015-03-31 22:27:26
@James_D谢谢,但这个话题的所有链接似乎行事,如果变量是预定义的,并没有在运行时输入这里是一个链接工程http://stackoverflow.com/questions/12166786/multiple-fxml-with- controllers-share-object /但该变量已预先定义 – Grendel 2015-04-01 00:28:32
创建一个模型类(仅用于保存数据)。您可以先将其定义并将其传递给您需要的任何控制器。然后只需从一个控制器修改它的状态,其他控制器就可以访问状态。 – 2015-04-01 00:31:37