创建一个可观察的列表/集合

瑞典瑞典:

我正在尝试ChoiceBox在JavaFX 8中创建一个,需要一个Collection我不知道如何创建一个Collection……但是,如果我尝试:

 ObservableList<String> list = new ObservableList<String>();

我收到一个错误,说我无法实例化,ObservableList因为它是抽象的。可以理解的 如果我查看该文档,ObservableList可以看到SortedList implements ObservableList,但是我做不到:

 ObservableList<String> list = new SortedList<String>();

因为没有适用的构造函数。显然我需要ObservableList传递给SortedList,这很奇怪,因为我无法创建ObservableList

constructor SortedList.SortedList(ObservableList<? extends String>,Comparator<? super String>) is not applicable
  (actual and formal argument lists differ in length)
constructor SortedList.SortedList(ObservableList<? extends String>) is not applicable
  (actual and formal argument lists differ in length)

我不确定如何解密。如果我尝试

 ObservableList<String> list = new SortedList<SortedList<String>>();
 //or
 ObservableList<String> list = new SortedList<ObservableList<String>>();

出于绝望,我得到了一个更复杂的错误。

    SortedList<String> list = new SortedList<String>();

也不起作用。它以某种方式起作用(但显然使用了不安全的操作):

ChoiceBox box = new ChoiceBox(FXCollections.observableArrayList("Asparagus", "Beans", "Broccoli", "Cabbage" , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom" , "Pepper", "Radish", "Shallot", "Spinach", "Swede" , "Turnip"));

所以我尝试了:

 ObservableList<string> list = new FXCollections.observableArrayList("Asparagus", "Beans", "Broccoli", "Cabbage" , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom" , "Pepper", "Radish", "Shallot", "Spinach", "Swede" , "Turnip");

但是那里也没有运气。我非常困惑,一遍又一遍地试图理解这一点,不断地重复着同样的事情。我找到的文档显示了无济于事的示例,或者没有示例。官方文档也没有用:

例如,假设您有一个Collection c,它可以是List,Set或另一种Collection。这个习惯用法创建了一个新的ArrayList(List接口的实现),最初包含c中的所有元素。

 List<String> list = new ArrayList<String>(c);

所以要创建ArrayList一个实现List,我需要一个List我首先去看文档的原因是要学习如何使他们假设我拥有的东西。我迷路了。救命?

James_D:

在以下位置使用工厂方法FXCollections

ObservableList<String> list = FXCollections.observableArrayList();

选择框构造函数中的不安全操作是因为尚未指定选择框的类型:

ChoiceBox<String> box = new ChoiceBox<>(FXCollections.observableArrayList("Asparagus", "Beans", "Broccoli", "Cabbage" , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom" , "Pepper", "Radish", "Shallot", "Spinach", "Swede" , "Turnip"));

的错误SortedList是因为没有构造函数不带参数。(再次,请参阅javadocs。)有两个构造函数:最简单的一个构造函数引用一个ObservableList(该列表将为其提供排序视图的列表)。所以你需要像

SortedList<String> sortedList = new SortedList<>(list);

要么

SortedList<String> sortedList = new SortedList<>(FXCollections.observableArrayList());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个可观察的是默认值(即使它永远不会完成)

一个可观察的多个可观察事件

将可观察的分组排放物收集到一个列表中

如何有效地将可观察集合中的范围选择为另一个可观察集合

创建一个可观察对象,该对象从另一个可观察对象发出数据子集

创建一个可观察的方法

如何基于从另一个可观察对象返回的键中的键创建可观察/ http请求的数组

如何在Rx中创建一个可观察的“通道”?

使用一个可观察对象同步另一个可观察对象

为包含可观察属性的对象列表获取一个可观察对象?

如何在RxJS中创建一个可观察对象,它依次等待2个可观察对象,然后执行操作,然后依次等待这2个可观察对象

如何用另一个可观察对象填充可观察对象并返回可观察对象

重复上一个可观察的

创建一个可观察到的所有值

从多个可观察值创建一个可观察值

RxJS等待可观察的然后创建另一个可观察的,依此类推

订阅另一个可观察对象内的嵌套可观察对象

如何创建一个在2个事件之间跳过发射的可观察对象

将可观察到的Zip列表转换为另一个可观察到的RxJava2

节流/缓冲基于Reactive Extensions中另一个观测值的可观察集合

遍历一个可观察的列表?

通过多个任务创建一个可观察的对象

使用rxjs创建一个可观察对象,稍后将其连接到Web套接字

从活动字典中创建一个可观察的集合

创建一个可观察的数组后,在 RxSwift 中使用 zip 运算符

根据另一个可观察值的值延迟发射可观察值

问题“解包”一个可观察的

如何从猫鼬发现创建一个可观察的

Forkjoin 一个可观察的数组