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