冻结tableview javafx中的第一列

时间:2017-10-10 23:38:59

标签: javafx tableview

我有一个tableview(javafx),我想冻结第一列,意味着如果你滚动到右侧,第一列将始终保持在屏幕上。我怎样才能做到这一点?我只有一个基本代码来填充tableview中的数据。

javafx.scene.control.TableColumn[] tableColumn = new javafx.scene.control.TableColumn[columnHeaderNamesArray.length];

    // add columns
    List<String> columnNames = Arrays.asList(columnHeaderNamesArray);
    for (int i = 0; i < columnNames.size(); i++)
    {
        final int finalIdx = i;
        javafx.scene.control.TableColumn<ObservableList<String>, String> column = new javafx.scene.control.TableColumn<>(columnNames.get(i));
        column.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(String.valueOf(param.getValue().get(finalIdx))));
        tableColumn[finalIdx] = column;
    }

    mTableFxPanel = new JFXPanel();
    add(mTableFxPanel);
    mTableFxPanel.setVisible(true);
    tableView = new TableView<ObservableList<Object>>();

    tableView.setEditable(true);
    for (int i = 0; i < dataMatrix.length; i++)
        tableView.getItems().add(FXCollections.observableArrayList(Arrays.asList(dataMatrix[i])));

    tableView.getColumns().addAll(tableColumn);
    tableView.getSelectionModel().setCellSelectionEnabled(true);

    ((Group) scene.getRoot()).getChildren().addAll(tableView);

0 个答案:

没有答案