美好的一天!我想问一下这些特殊情况是如何在JAVAFX中完成的。
我在这里指出了一个布局(link to layout question)
我的问题是,因为键盘布局是来自不同的具有不同Controller类的FXML,并且mainLayout具有不同的FXML和它自己的控制器类,你如何编码这样的当我按下'A'键时,它会显示在mainLayout中的文本字段中?它与绑定有关吗?如果是这样,怎么样?请?
答案 0 :(得分:1)
请记住,JavaFX和FXML遵循MVC原则。
一个简单的(虽然可能不是最优的)解决方案看起来像这样:
public class Main extends Application {
@Override
public void start(Stage stage) throws Exception {
FXMLLoader layout1Loader = new FXMLLoader(getClass().getResource("layout1.fxml"));
FXMLLoader layout2loader = new FXMLLoader(getClass().getResource("layout2.fxml"));
Node layout1 = (Node) layout1Loader.load();
Node layout2 = (Node) layout2loader.load();
final Layout1Controller l1Controller = layout1Loader.getController();
final Layout2Controller l2Controller = layout2loader.getController();
l2Controller.but2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
l1Controller.toggleStatus(actionEvent);
}
});
Parent root = (Parent) layout1;
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
...
}