如何在tableView(Javafx)中添加数据而不绑定到列

时间:2017-10-02 19:18:54

标签: javafx tableview

我有一个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"));

但是我怎样才能显示我的数据,因为列名称/数字将动态生成。

0 个答案:

没有答案