新的PropertyValueFactory<,>()用于集合

时间:2013-05-19 20:42:53

标签: java javafx-2 tablecolumn

我的问题是我想使用带有new PropertyValueFactory<,>()

的集合类型
TableColumn columnname = new TableColumn("Nom");
columnname.setCellValueFactory(new PropertyValueFactory<NoteBean, List>("name"));

因为我的NoteBean包含一个类型为collection(List)的字段。

谢谢;)。

1 个答案:

答案 0 :(得分:0)

我的问题的解决方案是使用以下代码使用forwhile解析集合:

    TableColumn<Person,String> firstNameCol = new TableColumn<Person,String>("First Name");
 firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
     public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
         return p.getValue().firstNameProperty();
     }
  });
 }

例如:

TableColumn columnmod = new TableColumn<ModuleNoteBean, Double>(
                moBean.getModuleBean());
        for (int i = 0; i < moBean.getListmat().size(); i++) {
            TableColumn columnNote = new TableColumn(moBean.getList_mat()
                    .get(i));
            final int index = i;
            columnNote
                    .setCellValueFactory(new Callback<CellDataFeatures<ModuleNoteBean, String>, ObservableValue<String>>() {

                        public ObservableValue<String> call(
                                CellDataFeatures<ModuleNoteBean, String> p) {

                            SimpleStringProperty b = new SimpleStringProperty(p
                                    .getValue().getModuleNList().get(0)
                                    .getNoteList().get(index)
                                    + "");

                            return b;
                        }
                    });

PropertyValueFactory