フォームのサイズ変更イベント(またはScene
またはStage
がなんであれ)でいくつかの機能を実行したい。
しかし、JavaFXでフォームのサイズ変更イベントを検出するにはどうすればよいですか?
widthProperty
の- heightProperty
および Stage
の変更を聞くことができます。
stage.widthProperty().addListener((obs, oldVal, newVal) -> {
// Do whatever you want
});
stage.heightProperty().addListener((obs, oldVal, newVal) -> {
// Do whatever you want
});
注:幅と高さの両方の変化を聞くには、同じリスナーを本当に簡単に使用できます。
ChangeListener<Number> stageSizeListener = (observable, oldValue, newValue) ->
System.out.println("Height: " + stage.getHeight() + " Width: " + stage.getWidth());
stage.widthProperty().addListener(stageSizeListener);
stage.heightProperty().addListener(stageSizeListener);
固定幅と高さの比率を維持する:
stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));