1. ホーム
  2. java

[解決済み] コードでfxmlウィンドウを閉じる, javafx

2022-02-08 01:59:09

質問

コントローラ内のコードで、現在のfxmlウィンドウを閉じる必要があります。

私は、stage.close() または stage.hide() がfxでこれを行うことを知っています。

これをfxmlで実装するにはどうしたらよいでしょうか。私は試してみました

private void on_btnClose_clicked(ActionEvent actionEvent) {
        Parent root = FXMLLoader.load(getClass().getResource("currentWindow.fxml"));    
        Scene scene = new Scene(root);

        Stage stage = new Stage();            
        stage.setScene(scene);
        stage.show();
}

が、うまくいきません!

すべてのヘルプは非常に高く評価されます。ありがとうございます。

解決方法は?

  1. クローズボタンにfx:idを付与します(まだの場合)。 <Button fx:id="closeButton" onAction="#closeButtonAction">
  2. コントローラクラスで

    @FXML private javafx.scene.control.Button closeButton;
    
    @FXML
    private void closeButtonAction(){
        // get a handle to the stage
        Stage stage = (Stage) closeButton.getScene().getWindow();
        // do what you have to do
        stage.close();
    }