JavaFX,将 ArrayList 转换为 ObservableList

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22191954/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 14:13:35  来源:igfitidea点击:

JavaFX, Casting ArrayList to ObservableList

javaarraylistjavafxormliteobservablelist

提问by Miljac

Is there a way to cast ArrayListto ObservableList? I would like to do it without iterating through ArrayList.

有没有办法投射ArrayListObservableList?我想在不迭代的情况下做到这一点ArrayList

To be more specific, I am using ORMLite to get data from database, and I need ObservableListas an output of the method fetching data from DB.

更具体地说,我使用 ORMLite 从数据库获取数据,我需要ObservableList作为从数据库获取数据的方法的输出。

Currently I am doing something like this:

目前我正在做这样的事情:

ArrayList<Stavka> listStavaka = new ArrayList<>(); 
Dao<Stavka, Integer> stavkaDao = DaoManager.createDao(connection, Stavka.class);
listStavaka = (ArrayList<Stavka>) stavkaDao.queryForAll();
ObservableList<Stavka> oListStavaka = FXCollections.observableArrayList();
for (Stavka stavka : listStavaka) {
    oListStavaka.add(stavka);
}

And I would like to do something like this:

我想做这样的事情:

ObservableList<Stavka> listStavaka = FXCollections.observableArrayList();
Dao<Stavka, Integer> stavkaDao = DaoManager.createDao(connection, Stavka.class);
listStavaka = (ObservableList<Stavka>) stavkaDao.queryForAll();

采纳答案by Uluk Biy

You can do

你可以做

ObservableList<Stavka> oListStavaka = FXCollections.observableArrayList(listStavaka);

回答by Eric Chan

As in Uluk Biy's answer, but if you don't want to mix it with new list by FXCollections, just use this...

就像在 Uluk Biy 的回答中一样,但如果您不想将它与 FXCollections 的新列表混合,只需使用它...

oListStavaka.addAll(stavkaDao.queryForAll());