3

サイズ変更を検出できるように、changlistener を Scene.getWidth() に追加しようとしています。これは、リスナーを追加しようとした方法のコード スニペットです。

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 scene.getWidth().addListener(new ChangeListener() {

^
./GraphFX.java:49: エラー: double を逆参照できません scene.getWidth().addListener(new ChangeListener() { ^ 2 エラー

4

1 に答える 1

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);
        }

   });

または、シーン幅プロパティをバインドするだけでシーン幅の変更を追跡できます

コード:

DoubleProperty sceneWidth = new SimpleDoubleProperty();
sceneWidth.bind(scene.widthProperty());
于 2013-01-13T18:52:38.917 に答える