javafx怎么在controller操作另一个controller
时间: 2023-11-18 21:06:38 浏览: 106
在JavaFX中,通过FXML文件可以将Controller与UI元素绑定起来,如果需要在一个Controller中操作另一个Controller,可以通过以下步骤实现:
1. 在FXML文件中为需要操作的Controller添加fx:id属性,例如:
```xml
<AnchorPane fx:id="otherControllerPane" ... >
<fx:include source="OtherController.fxml"/>
</AnchorPane>
```
2. 在需要操作的Controller中定义一个对应的变量,例如:
```java
@FXML
private AnchorPane otherControllerPane;
private OtherController otherController;
```
3. 在Controller的initialize()方法中获取对应的Controller实例,例如:
```java
@Override
public void initialize(URL location, ResourceBundle resources) {
FXMLLoader loader = new FXMLLoader(getClass().getResource("OtherController.fxml"));
try {
Node otherControllerNode = loader.load();
otherController = loader.getController();
otherControllerPane.getChildren().add(otherControllerNode);
} catch (IOException e) {
e.printStackTrace();
}
}
```
4. 然后就可以在当前Controller中通过otherController变量调用OtherController中的方法了,例如:
```java
otherController.doSomething();
```
阅读全文