0

我想为Scene's添加一个监听器widthProperty,我想知道我做错了什么,这是我的代码:

ChangeListener<Double> widthListener = new ChangeListener<Double>() {

    @Override
    public void changed(ObservableValue<? extends Double> observable, Double oldValue, Double newValue) {
        System.out.println("width changed");
    }

};        

foo.getScene().widthProperty().addListener(dimensionsListener);

对于带有 addListener 的行,这给了我以下错误:

The method addListener(ChangeListener<? super Number>) in the type ObservableValue<Number> is not applicable for the arguments (ChangeListener<Double>) 

Double 是 Number 的子类,所以我的代码有什么问题?谢谢 :-)

4

1 回答 1

0

那为什么不使用 Number 呢?这有效:

scene.widthProperty().addListener(new ChangeListener<Number>() {
          @Override
          public void changed(ObservableValue<? extends Number> observableValue, Number number, Number number2) {
              System.out.println("changed");
          }
      });
于 2013-04-24T12:23:55.087 回答