当前位置: 首页 > 知识库问答 >
问题:

无法用提取器实例化ObservableList

穆博简
2023-03-14

我有一个自定义对象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()函数。

链接:

JavaFX2.0选择框问题。如何在更新对象时更新表示对象列表的choiceBox?

共有1个答案

闻人修平
2023-03-14

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

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或类似的内容。

 类似资料:
  • 我在跟随一位导游http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/对于GCM。 目前,我被困在接收通知的部分。有时,当我运行代码时,它会因以下错误而崩溃: 7.517:E/AndroidRuntime(8601):致命异常:mai

  • 问题内容: 我正在尝试创建一个,所以我可以向JNDI请求一些企业Java Bean。JBoss运行正常,但是当我运行Java代码时,出现异常。 我正在运行JBoss 7.1 这是我的代码: 在启动JBoss服务器之后,我尝试运行Java代码,并得到以下异常: 可能是什么问题? 问题答案: InitialContext属性不适用于您使用的JBoss版本。使用JBoss 7,当您从远程客户端调用ejb

  • 我试图使用Postgis 2.2和Postgreql 9.5与JPA,Postgis 9.5方言。我已经在pom.xml的要求,按这里http://www.hibernatespatial.org/documentation/documentation/和类型导入正确,但是当我试图运行程序使用几何类型我得到这个错误: 我显然遗漏了一些配置,有人能指出是什么吗?

  • 我在MapFragment的布局文件中出现了这个错误 我试过了 > 安装Google Play服务,但仍有错误 - com.google.android.gms.maps.MapFragment(开放类,显示异常,清除缓存) 提示:在自定义视图中使用view.isinEditMode()跳过代码或在IDE中显示示例数据。 如果这是一个意外错误,您也可以尝试构建项目,然后手动刷新布局。 异常详细信息

  • 我正在将一个Java EE应用程序部署到Bluemix,当第一个请求到达时,我得到了这个错误: 2015-05-20T23:11:58.51+0200[app/0]OUT[INFO]FFDC1015I:已创建FFDC事件:“java.util.ServiceConfigurationError:javax.servlet.ServletContainerInitializer:Provider o

  • 我正在尝试将H2设置为内存数据库。我已将其配置为: 然而,当我尝试运行它时,我会遇到这个错误 我不确定它为什么不接受jdbc url,我的confg格式有什么问题吗?