我有一个要求在哪里我应该比较两个csv文件。为了比较,我们正在尝试实施规则配置。现在规则将有如下对象:
public class CsvInformation {
private String resultType;
private List<String> primaryKey;
private List<String> standardKey;
private List<String> ignoreKey;
public String getResultType() {
return resultType;
}
public void setResultType(String resultType) {
this.resultType = resultType;
}
public List<String> getPrimaryKey() {
return primaryKey;
}
public void setPrimaryKey(List<String> primaryKey) {
this.primaryKey = primaryKey;
}
public List<String> getStandardKey() {
return standardKey;
}
public void setStandardKey(List<String> standardKey) {
this.standardKey = standardKey;
}
public List<String> getIgnoreKey() {
return ignoreKey;
}
public void setIgnoreKey(List<String> ignoreKey) {
this.ignoreKey = ignoreKey;
}
所以我正在获取CSVInformation对象的列表。现在我想将这些对象映射/绑定到tableView控件,以便用户可以选择通过comboBox控件选择PrimaryKey,IgnoreKey,StandardKey的值。 TableView单元格。 TableView控件应该看起来类似于以下快照。
在上面的快照中,我想用从backEnd获取的 CsvInformation对象列表的每个对象填充TableView的每一行。这是可以实现的吗?我google了一下,但他们提到的所有地方都无法使用Collection绑定到TableView中的comboBox。任何建议/指示/建议将受到高度赞赏。感谢
@James_D:嗨James,Thx回复。主要的想法是给用户选择主键,标准键和键。忽略键以告诉我们要包含哪些列以供比较,哪些列要忽略,哪些是主键等。一旦用户选择了当时TableView中存在的行数,我需要保存这些并创建了一个Json。要求是tableView需要包含4列:1个标签,3个不可编辑的组合框。现在回答您对组合框的查询,每个组合框本质上都是唯一的,即填充TableView中的ComboBox的条目,如果我说第1行,主键组合 - 框将具有字符串值,如Mohit,Neha ,Neeraj。现在,当我移动填充下一行填充时,即第2行primaryKey Combo - box将具有James,Jason,Bourne等值。我想要实现的是通过绑定到a来创建这些组合框名单。我在这里附加了一个快照,用于csvHeaderList的内容.TableView内容中的每一行都将来自CSVHeaderList的每个索引。如果您对此有任何疑问,请与我们联系。
< TabelView code >
TableView<CsvInformation > table = new TableView<CsvInformation >();
// Create column Result Type (Data type of String).
TableColumn<CsvInformation , String> resultTypeCol = new TableColumn<CsvInformation , String>("Result Type");
// Create column Primary Column (Data type of List<String>).
TableColumn<CsvInformation , List<String>> primaryKeyCol = new TableColumn<CsvInformation , List<String>>("Primary Column");
// Create column Standard Column (Data type of List<String>).
TableColumn<CsvInformation , List<String>> standardCol = new TableColumn<CsvInformation , List<String>>("Standard Column");
// Create column for Ignorable Columns. (Data type of List<String>).
TableColumn<CsvInformation , List<String>> ignoredCol = new TableColumn<CsvInformation , List<String>>("Ignorable Columns");
PropertyValueFactory<CsvInformation , List<CsvInformation >> resultTypeColFactory = new PropertyValueFactory<>(
"resultType");
PropertyValueFactory<CsvInformation , List<CsvInformation >> primaryColFactory = new PropertyValueFactory<>(
"primaryKey");
PropertyValueFactory&GT; standardColFactory = new PropertyValueFactory&lt;&gt;( “standardKey”); PropertyValueFactory&GT; compareColFactory = new PropertyValueFactory&lt;&gt;( “ignoreKey”); //定义如何填充每个单元格的数据。 //从CsvInformation的属性中获取值。
resultTypeCol.setCellValueFactory(new PropertyValueFactory<>("resultType"));
primaryKeyCol.setCellValueFactory(new PropertyValueFactory<>("primaryKey"));
standardCol.setCellValueFactory(new PropertyValueFactory<>("standardKey"));
ignoredCol.setCellValueFactory(new PropertyValueFactory<>("ignoreKey"));
我遇到的问题是如何为Tablecolumn,Table Cell,Cellfactory提供我对于集合/列表的定义: TableColumn用于将我的列表映射到TableView中的组合框。