Java 类型ChangeListener不接受参数
我正在尝试为我的阶段的一些属性创建ChangeListener,但我不知道如何Java 类型ChangeListener不接受参数,java,parameters,javafx,arguments,changelistener,Java,Parameters,Javafx,Arguments,Changelistener,我正在尝试为我的阶段的一些属性创建ChangeListener,但我不知道如何 mainScene.widthProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth)
mainScene.widthProperty().addListener(new ChangeListener<Number>() {
@Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
System.out.println("Width: " + newSceneWidth);
}
});
您可能已经从Swing API导入了ChangeListener,它不接受类型参数,而接受JavaFX ChangeListener。确保您具有正确的导入:
import javafx.beans.value.ChangeListener ;
您可能已经从Swing API导入了ChangeListener,它不接受类型参数,而接受JavaFX ChangeListener。确保您具有正确的导入:
import javafx.beans.value.ChangeListener ;
通过使用lambda表达式,摆脱所有难以理解的代码和导入:
mainScene.widthProperty ().addListener ( (ObservableValue <? extends Number> observableValue , Number oldSceneWidth, Number newSceneWidth) -> System.out.println("width: "+ newSceneWidth));
通过使用lambda表达式,摆脱所有难以理解的代码和导入:
mainScene.widthProperty ().addListener ( (ObservableValue <? extends Number> observableValue , Number oldSceneWidth, Number newSceneWidth) -> System.out.println("width: "+ newSceneWidth));
您可能有错误的导入语句。@James\u您知道哪一个是正确的吗?我可以编辑我的帖子以包含导入。除非我遗漏了什么,否则这些都不会导入ChangeListener。您需要导入javafx.beans.value.ChangeListener;。确保您没有来自Swing的ChangeListener,因为它没有类型参数。@James_,这很有效,谢谢!如果你加上它作为答案,我可以批准它。你可能有错误的进口声明。@James\u你知道哪一个是正确的吗?我可以编辑我的帖子以包含导入。除非我遗漏了什么,否则这些都不会导入ChangeListener。您需要导入javafx.beans.value.ChangeListener;。确保您没有来自Swing的ChangeListener,因为它没有类型参数。@James_,这很有效,谢谢!如果你把它作为一个答案,我可以批准它。
mainScene.widthProperty ().addListener (e -> System.out.println("SceneWidth Changed"));