JavaFx在同一个Scence/Window加载新的fxml,以及在Controller中获取Stage

1.有这样的一种场景:在一个界面A中有一个按钮,点击这个按钮后,会弹出界面B,此时界面A已经不存在了。

```
//这是界面A的Controller
public class HBoxMainController {
    @FXML
    private VBox rootVBox;//这是界面A的根布局的id
    @FXML
    private Button getPath;//这是界面A中的按钮
    //这是界面A中的按钮的点击事件
    @FXML
    private void getPathAction(){
        try {
        //加载界面B的fxml文件
            Parent root = FXMLLoader.load(getClass().getResource("/HBoxMain.fxml"));
            //将一个新的fxml文件(界面B)加入到界面A的根布局上。
            rootVBox.getChildren().setAll(root);
        } catch (IOException e) {
            e.printStackTrace();
        }
```

2. 有时需要在Controller中获取Stage对象

```
在1中执行下面这行代码即可获取Stage对象
Stage stage = (Stage) rootVBox.getScene().getWindow();
```

猜你喜欢

转载自blog.csdn.net/cdc_csdn/article/details/80712726
今日推荐