java - 在一个场景中加载两个不同的 FXML 文件
问题描述
我有两个不同的 FXML 文件ViewOne.fxml -> ViewOneController 和ViewTwo.fxml -> ViewTwoController.java。
第一个视图只有 3 个文本字段,第二个视图应根据第一个视图的输入绘制一个圆圈。
我的问题是如何在同一个场景上加载两个 FXML 文件,然后使用这些事件画一个圆圈?
ViewOneController.java
public class ViewOneController {
@FXML
private HBox rootHBox;
@FXML
private TextField firstTextField;
@FXML
private TextField thirdTextField;
@FXML
private TextField secondTextField;
@FXML
void handleFirstTextField(ActionEvent event) {
}
@FXML
void handleSecondTextField(ActionEvent event) {
}
@FXML
void handleThirdTextField(ActionEvent event) {
}
}
ViewOne.fxml
<HBox fx:id="rootHBox" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="exercise3Circles.ViewOneController">
<children>
<VBox prefHeight="400.0" prefWidth="243.0">
<children>
<AnchorPane prefHeight="401.0" prefWidth="243.0">
<children>
<Label alignment="CENTER" layoutX="82.0" layoutY="44.0" text="View 1" textAlignment="CENTER">
<font>
<Font name="System Bold" size="20.0" />
</font>
</Label>
<Label layoutX="17.0" layoutY="120.0" text="X:" />
<TextField fx:id="firstTextField" layoutX="51.0" layoutY="115.0" onAction="#handleFirstTextField" />
<Label layoutX="17.0" layoutY="206.0" text="Y:" />
<TextField fx:id="thirdTextField" layoutX="51.0" layoutY="297.0" onAction="#handleThirdTextField" />
<Label layoutX="17.0" layoutY="302.0" text="R:" />
<TextField fx:id="secondTextField" layoutX="51.0" layoutY="201.0" onAction="#handleSecondTextField" />
</children>
</AnchorPane>
</children>
</VBox>
</children>
</HBox>
ViewTwoController.java
public class ViewTwoController {
@FXML
private Label xLabel;
@FXML
private Label yLabel;
@FXML
private Label radiusLabel;
}
ViewTwo.fxml
<HBox alignment="CENTER_RIGHT" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="exercise3Circles.ViewTwoController">
<children>
<VBox alignment="CENTER_RIGHT" prefHeight="400.0" prefWidth="340.0">
<children>
<AnchorPane prefHeight="400.0" prefWidth="238.0">
<children>
<Label layoutX="132.0" layoutY="44.0" text="View 2" textAlignment="CENTER">
<font>
<Font name="System Bold" size="20.0" />
</font>
</Label>
<Label layoutX="76.0" layoutY="356.0" text="X = 0" fx:id="xLabel" />
<Label fx:id="yLabel" layoutX="141.0" layoutY="356.0" text="Y = 0" />
<Label fx:id="radiusLabel" layoutX="208.0" layoutY="356.0" text="Radius = 0" />
</children>
</AnchorPane>
</children>
</VBox>
</children>
</HBox>
解决方案
推荐阅读
- type-hinting - 仅用于类型提示时应该导入类吗?政治力量 560
- c# - 在类文件中声明对象类型列表给出“缺少使用指令或程序集引用”错误
- xml - perl XML设置标签值问题
- wordpress - 创建新帖子时自动显示所有自定义字段
- c++ - MacOSX 上的 IOstream
- ggplot2 - R更改ggplot散点图颜色
- firebase - 从 Android Firebase 检索数据,将其显示到 listview 并将 onItemClickListener 应用于 ListView
- ruby-on-rails - Rails 默认为定义的值
- dataframe - dask `DataFrame.set_index()` 的并行执行
- c - 结构指针数组