I'm trying to create ChangeListeners for some properties of my stage, but I can't figure out how to...
mainScene.widthProperty().addListener(new ChangeListener<Number>() {
@Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
System.out.println("Width: " + newSceneWidth);
}
});
gives the error "type ChangeListener does not take parameters".
mainScene.widthProperty().addListener(new ChangeListener<>() {
@Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
System.out.println("Width: " + newSceneWidth);
}
});
gives "cannot infer type arguments for ChangeListener". It feels like a "damned if you do, damned if you don't" situation to me. Removing the parentheses after the <> gives a boatload of errors...
EDIT: Imports:
import javafx.application.Application;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.image.*;
import javafx.scene.paint.*;
import javafx.beans.*;
import javafx.beans.property.*;
import javafx.geometry.*;
You have likely imported the ChangeListener
from the Swing API (which doesn't take type parameters) instead of the JavaFX ChangeListener
. Make sure you have the correct import:
import javafx.beans.value.ChangeListener ;