JavaFX动态列设置
我在将列动态添加到TableView时遇到问题。问题是,它将一个单元格的数据添加到整行中。我认为问题可能出在回调中,或者在tableView中添加数据的部分。 这是我的回调方法:JavaFX动态列设置,java,dynamic,javafx,tableview,tablecolumn,Java,Dynamic,Javafx,Tableview,Tablecolumn,我在将列动态添加到TableView时遇到问题。问题是,它将一个单元格的数据添加到整行中。我认为问题可能出在回调中,或者在tableView中添加数据的部分。 这是我的回调方法: Callback<CellDataFeatures<String,String> ,ObservableValue<String>> cb; cb = new Callback<CellDataFeatures<String,String> ,ObservableV
Callback<CellDataFeatures<String,String> ,ObservableValue<String>> cb;
cb = new Callback<CellDataFeatures<String,String> ,ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<String, String> param) {
return new SimpleStringProperty(param.getValue());
}
};
cb;
cb=新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue());
}
};
这是我添加数据的地方,listOfNewValues是ArrayList,它包含新的字符串值:
ObservableList<String> addData = FXCollections.observableArrayList();
addData = aktualTable.getItems();
for(String data : listOfNewValues) {
addData.add(data);
}
aktualTable.setItems(addData);
observeListAddData=FXCollections.observearraylist();
addData=aktualTable.getItems();
用于(字符串数据:新值列表){
addData.add(数据);
}
aktualTable.setItems(addData);
我认为您缺少了有关TableView
工作原理的一些基本信息(但如果我在这一点上错了,请原谅)。执行TableView.setItems(someList)
时,列表中的每个项目都代表表中的整行。因此,您的第二块代码不是“添加数据”,而是替换所有数据。你用一个字符串来表示每一行,看起来每一列都有相同的数据值。说实话,你说对了一半,我知道.setItem是如何工作的,但在我读了你的评论后,不知怎的我想到了问题所在。谢谢