我正在尝试向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:错误:不是抽象的 不会覆盖ChangeListener中更改的抽象方法(ObservableValue,Double,Double) scene.getWidth()。addListener(new ChangeListener(){
^
./GraphFX.java:49:错误:double无法解除引用 scene.getWidth()。addListener(new ChangeListener(){ ^ 2错误
答案 0 :(得分:2)
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);
}
});
或者,您可以通过仅绑定场景widthproperty来跟踪场景宽度变化
代码:
DoubleProperty sceneWidth = new SimpleDoubleProperty();
sceneWidth.bind(scene.widthProperty());