resize - 不明白如何在 JavaFX 中使用 changlistener

标签 resize listener javafx scene

我正在尝试向 Scene.getWidth() 添加一个 changlistener,以便我可以检测到调整大小。这是我尝试添加监听器的代码片段。

scene.getWidth().addListener(new ChangeListener<Double>() {
    public void changed(ObservableValue<? extends Double> ov,double old_val, double new_val) {
        System.out.println(new_val);
    }
});

它给了我以下错误。

./GraphFX.java:49: error: is not abstract and does not override abstract method changed(ObservableValue,Double,Double) in ChangeListener scene.getWidth().addListener(new ChangeListener() {

^
./GraphFX.java:49: error: double cannot be dereferenced scene.getWidth().addListener(new ChangeListener() { ^ 2 errors

最佳答案

scene.getWidth() 返回一个 double 原语而不是一个对象,这就是为什么它不能被取消引用。public final double getWidth()

您可以使用返回 ReadOnlyDoubleProperty 的场景 widthProperty() 方法

 scene.widthProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue ov, Object t, Object t1) {
         double value = (double) t1;
            System.out.println("Scene Width :" + value);
        }

   });

或者,您可以通过绑定(bind)场景宽度属性来跟踪场景宽度的变化

代码:

DoubleProperty sceneWidth = new SimpleDoubleProperty();
sceneWidth.bind(scene.widthProperty());

关于resize - 不明白如何在 JavaFX 中使用 changlistener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304873/

相关文章:

javascript - 检查 dom 对象大小调整的最高效方法

javascript - angular 2+垂直调整div

java - 从另一个 Activity 调用时为空监听器

php - 当我用 spatie 包处理 stripewebbook 时没有任何反应

javascript - 使用 JQuery 在 Chrome 中调整图像大小

java - 我需要帮助了解 putExtra 和检索行 ID?

JavaFX - 强制 GridPane 的 child 适应单元格的大小

java - 使用 Java 9+ 模块设置在 CLI 中运行 Groovy

java - 线程中出现异常 "JavaFX Application Thread"java.lang.IllegalArgumentException

ios - 缩放时调整 UIScrollView 的内容