gpt4 book ai didi

java - 无法使用提取器实例化 ObservableList

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:33 27 4
gpt4 key购买 nike

我有一个自定义对象 FermentableInRecipe,它填充了一个 TableView。为了响应列表中项目的更改以及列表本身,我决定使用提取器。这是我的 ObservableList 的声明和实例化:

private ObservableList<FermentableInRecipe> fermentablesInRecipe = 
FXCollections.observableArrayList(item -> new Observable[]{item.WeightProperty()});

以下是我的自定义类的相关部分:

public class FermentableInRecipe {

private DoubleProperty weight;

...

public Double getWeight() {
return this.weight.getValue();
}

public void setWeight(Double value) {
this.weight.setValue(value);
}

public DoubleProperty WeightProperty() {
if (weight == null) {
weight = new SimpleDoubleProperty(0.0);
}
return weight;
}

...
}

在我下面提供的链接中,这种方法奏效了。但是 Netbeans 告诉我DoubleProperty 无法转换为Observable。我明白为什么会这样,但我不明白为什么它在下面的链接中有效而不适合我,以及如果这种方法我应该如何创建提取器并将其链接到 weightProperty() 函数不起作用。

链接:

JavaFX 2.0 Choice Box Issue. How to update a choiceBox, which represents a list of objects, when an object is updated?

JavaFX, ObservableList: How to fire an InvalidationListener whenever an object of the list gets modified?

提前致谢。如果我遗漏了任何重要信息,请告诉我。

最佳答案

您编写的代码没有任何问题,这对我来说编译得很好:

import javafx.application.Application;
import javafx.beans.Observable;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.stage.Stage;

public class JavaFXApplication1 extends Application {

class FermentableInRecipe {

private DoubleProperty weight;

public Double getWeight() {
return this.weight.getValue();
}

public void setWeight(Double value) {
this.weight.setValue(value);
}

public DoubleProperty WeightProperty() {
if (weight == null) {
weight = new SimpleDoubleProperty(0.0);
}
return weight;
}

}

private ObservableList<FermentableInRecipe> fermentablesInRecipe = FXCollections.observableArrayList(item -> new Observable[]{item.WeightProperty()});

@Override
public void start(Stage primaryStage) throws Exception {
}
}

我建议仔细检查导入,并确保您没有错误地导入 java.util.Observable 或类似内容。

关于java - 无法使用提取器实例化 ObservableList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50099315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com