(重复并解决-请参见下面的答案)
我正在学习JavaFX,使用“SceneBuilder”似乎相当困难。我习惯于Android和QtCreator。在我看来,访问UI组件要容易得多。
类似于findViewById(R.id.btnPushMe);
<- Android 代码
实际上,我已经找到了一种解决方案,但使用起来相当不舒服。如下所示:
FXMLLoader loader = new FXMLLoader(MainApp.class.getResource("../fmxl/main.fxml"));
AnchorPane pane = loader.load();
System.out.println("panechilds:" + pane.getChildren().size());
BorderPane border = (BorderPane) pane.getChildren().get(0);
System.out.println("borderchilds:" + border.getChildren().size());
the xml..
<AnchorPane fx:id="mAnchor" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="app.progui.MainController">
<children>
<BorderPane layoutX="-1.0" prefHeight="600.0" prefWidth="800.0">
<top>
...
提前感谢您的帮助,Martin。
编辑:
这是一个重复的问题(但我不会删除它,因为我花了一些时间找到答案 - 也许是因为JavaFX没有像Android问题那样被问到..)
AnchorPane anchor = (AnchorPane) scene.lookup("#mAnchor");
在这里找到:如何在JavaFX中查找带ID的元素?