我遇到的问题是我的表中的每一列都采用完全相同的值。更具体地说,它们都具有第二列应具有的值。
但是,列名称本身也没问题。
我们说我有ObeservableList<ObservableList> data
我填充data
所以它看起来像:
[[11,12,13,14],[21,22,23,24],[31,32,33,34]]
我的桌子(java小程序,但我刚刚在这里写下文字)最终看起来像这样:
Cat1|Cat2|Cat3|Cat4 when I want it to be: Cat1|Cat2|Cat3|cat4
12 | 12 | 12 | 12 11 | 12 | 13 | 14
22 | 22 | 22 | 22 ....
32 | 32 | 32 | 32
...
任何人都知道问题是什么?
这里是tableview部分的代码
System.out.println(data)
tableview.setItems(data)
我认为这样就足够了吗?
答案 0 :(得分:0)
您需要向每列添加一个告诉列的CellValueFactory
,需要显示嵌套ObservableList
中的哪个值。
示例:
@FXML
private TableView<ObservableList> productsTable
@FXML
private TableColumn<ObservableList, String> column1
@FXML
private TableColumn<ObservableList, String> column2
...
column1.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().getAt(0).toString());
}
});
column2.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().getAt(1).toString());
}
});