JavaFX FXML アプリケーションを開発しています。実行時にコントローラー クラスからウィンドウのサイズを変更する必要があります。
ステージの maxHeight プロパティと maxWidth プロパティを設定することで、アプリケーション クラスからこれを実行できることがわかりました。しかし、アプリケーションの実行中にコントローラー クラスからそれを行うにはどうすればよいでしょうか。
コントローラークラスでボタンを定義し、そのアクションを次のように設定します
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
// OR, if you define btn as @FXML private Button btn.
Stage stage = (Stage) btn.getScene().getWindow();
// these two of them return the same stage
stage.setWidth(new_val);
stage.setHeight(new_val);
}
});
stage はプライマリ (メイン) ステージです。