web-dev-qa-db-ja.com

JavaFXでステージのサイズ変更イベントをリッスンする方法は?

フォームのサイズ変更イベント(またはSceneまたはStageがなんであれ)でいくつかの機能を実行したい。

しかし、JavaFXでフォームのサイズ変更イベントを検出するにはどうすればよいですか?

14
Amita Patil

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); 
33
DVarga

固定幅と高さの比率を維持する:

stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));
3
M. S.