【发布时间】:2018-10-10 11:28:34
【问题描述】:
我有一个自定义对象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() 函数。
链接:
提前致谢。如果我遗漏了任何重要信息,请告诉我。
【问题讨论】:
-
“我明白为什么会这样” 我不明白:检查 Javadoc。这是All Implemented Interfaces中提到的第二个接口:docs.oracle.com/javase/9/docs/api/javafx/beans/property/… 你是否导入了正确的
Observable类,即javafx.beans.Observable? -
可能您对
Observable的导入有误 -
你说的都是对的。我不小心导入了
java.util.Observable而不是javafx.beans.Observable。我不觉得自己像个白痴吗...
标签: java javafx java-8 observablelist extractor