【问题标题】:Type ChangeListener does not take parameters类型 ChangeListener 不带参数
【发布时间】:2014-11-30 00:47:19
【问题描述】:

我正在尝试为我的舞台的某些属性创建 ChangeListeners,但我不知道如何...

mainScene.widthProperty().addListener(new ChangeListener<Number>() {
    @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
        System.out.println("Width: " + newSceneWidth);
    }
});

给出错误“类型 ChangeListener 不带参数”。

    mainScene.widthProperty().addListener(new ChangeListener<>() {
        @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
            System.out.println("Width: " + newSceneWidth);
        }
    });

给出“无法推断 ChangeListener 的类型参数”。对我来说,这感觉就像“该死的如果你这样做,如果你不这样做该死”的情况。删除 之后的括号会产生大量错误...

编辑:进口:

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.*;

【问题讨论】:

  • 你可能有错误的导入语句。
  • @James_D 你知道哪个是合适的吗?我可以编辑我的帖子以包含导入。
  • 这些都不会导入ChangeListener,除非我遗漏了什么。你需要import javafx.beans.value.ChangeListener;。确保您没有来自 Swing 的 ChangeListener(它没有类型参数)。
  • @James_D 成功了,谢谢!如果您将其添加为答案,我可以批准它。

标签: java parameters javafx arguments changelistener


【解决方案1】:

您可能从 Swing API(不接受类型参数)而不是 JavaFX ChangeListener 导入了 ChangeListener。确保您有正确的导入:

import javafx.beans.value.ChangeListener ;

【讨论】:

    【解决方案2】:

    使用 lambda 表达式摆脱所有难以理解的代码以及导入:

    mainScene.widthProperty ().addListener ( (ObservableValue <? extends Number> observableValue , Number oldSceneWidth, Number newSceneWidth) -> System.out.println("width: "+ newSceneWidth));
    

    如果你不需要newSceneWidth,你可以让它更短。 喜欢:

    mainScene.widthProperty ().addListener (e -> System.out.println("SceneWidth Changed"));
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 2021-01-31
      • 2015-08-19
      • 2014-12-16
      • 2014-05-22
      • 1970-01-01
      • 2017-10-06
      相关资源
      最近更新 更多