我正在尝试向 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/