如何在JavaFX中监听Stage的resize事件?

Ami*_*til 16 java javafx properties listener javafx-8

我想在表单的resize事件(Scene或者Stage不管它是什么)上执行一些功能.

但是如何在JavaFX中检测表单的resize事件?

DVa*_*rga 35

你可以听的变化widthPropertyheightPropertyStage:

stage.widthProperty().addListener((obs, oldVal, newVal) -> {
     // Do whatever you want
});

stage.heightProperty().addListener((obs, oldVal, newVal) -> {
     // Do whatever you want
});
Run Code Online (Sandbox Code Playgroud)

注意:要同时监听宽度和高度的变化,可以非常简单地使用相同的侦听器:

ChangeListener<Number> stageSizeListener = (observable, oldValue, newValue) ->
    System.out.println("Height: " + stage.getHeight() + " Width: " + stage.getWidth());

stage.widthProperty().addListener(stageSizeListener);
stage.heightProperty().addListener(stageSizeListener); 
Run Code Online (Sandbox Code Playgroud)

  • 这将调用“做任何你想做的事”两次,有更优雅的方式吗? (2认同)