我有一个tableView,并且在飞行中生成列/数据。我试图在tableView中显示数据如下,但它只显示列标题,而不是数据。
// get value data matrix and column names
// DataMatrix contains the data, which keeps changing on the basis of selection. The number of rows/columns would be different of each selection
final Object[][] dataMatrix = mController.getTableData();
final ArrayList<String> aColHeaders = mController.getColumnHeaders(true);
Object[] objectList = aColHeaders.toArray();
String[] columnHeaderNamesArray = Arrays.copyOf(objectList, objectList.length, String[].class);
List<Object[]> data = new ArrayList<Object[]>();
javafx.scene.control.TableColumn[] tableColumn = new javafx.scene.control.TableColumn[columnHeaderNamesArray.length];
for (int i = 0; i < dataMatrix.length; i++)
data.add(dataMatrix[i]);
ObservableList<Object[]> dataList = FXCollections.observableArrayList(data);
for (int i = 0; i < columnHeaderNamesArray.length; i++)
tableColumn[i] = new javafx.scene.control.TableColumn(columnHeaderNamesArray[i]);
mTableFxPanel = new JFXPanel();
add(mTableFxPanel);
mTableFxPanel.setVisible(true);
tableView = new TableView<Object[]>();
tableView.setEditable(true);
tableView.getColumns().addAll(tableColumn);
tableView.setItems(dataList);
我知道我无法看到数据,因为我没有对我的列进行以下操作:
TableColumn firstNameCol = new TableColumn("First Name");
firstNameCol.setCellValueFactory(
new PropertyValueFactory<Person, String>("firstName"));
但是我怎样才能显示我的数据,因为列名称/数字将动态生成。