2013-04-23 1 views
0

Je veux ajouter un écouteur à l » widthPropertyScene et je me demande ce que je fais mal, voici mon code:Ajout d'un écouteur tapé à la propriété width Scène

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

Pour la ligne avec addListener cela donne moi l'erreur suivante:

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

Double est une sous-classe de Number, alors quel est le problème avec mon code? Merci :-)

+0

Le type de l'écouteur, que vous ajoutez doit être un super type de Number: tout parent de Number. Smth, plus commun que Number. Double est une sous-classe, pas une superclasse. –

+0

http://stackoverflow.com/questions/3847162/java-generics-super-keyword –

Répondre

0

pourquoi ne pas utiliser Number alors? cela fonctionne:

scene.widthProperty().addListener(new ChangeListener<Number>() { 
      @Override 
      public void changed(ObservableValue<? extends Number> observableValue, Number number, Number number2) { 
       System.out.println("changed"); 
      } 
     }); 
Questions connexes