在JavaFX应用中操作表格。比如:添加表格,为表格填充数据、编辑表格的行。运用TableView
时间: 2024-09-25 09:04:42 浏览: 32
在JavaFX中,`TableView`是一个用于显示数据集合的组件,通常用于展示表格样式的数据。以下是使用`TableView`的基本步骤:
1. **添加表格到场景**:
首先,你需要在你的FXML文件中引入`TableView`元素,并在对应的Java类里通过`Scene`的`getChildren()`方法将其添加到舞台上:
```java
FXMLLoader loader = new FXMLLoader();
Parent root = loader.load(MyTable.fxml);
Scene scene = new Scene(root);
// 获取TableView实例
TableView<MyDataType> tableView = (TableView<MyDataType>) scene.getRoot().lookup("#myTableView");
```
2. **创建数据模型**:
创建一个`ObservableList`作为数据源,例如`ArrayList`,并绑定给`TableView`:
```java
ObservableList<MyDataType> data = FXCollections.observableArrayList(myDataList);
tableView.setItems(data);
```
`MyDataType`应是你自定义的数据类。
3. **填充数据**:
可以直接向`data`列表中添加元素来填充表格,如:
```java
data.add(new MyDataType(column1Value, column2Value));
```
4. **编辑表格行**:
你可以选择某一行,然后提供事件处理机制来支持编辑。当用户双击单元格时,可以触发事件:
```java
tableView.setOnMouseClicked(event -> {
if (event.getClickCount() == 2) { // double click detected
int row = event.getTableColumn().getVisibleIndex(); // get the selected row index
MyDataType rowData = data.get(row); // retrieve the data
// Here you can implement your editing logic, like showing a dialog for editing
}
});
```
5. **添加列和列头**:
使用`TableView`的`addColumn`方法添加列,同时也可以设置列标题:
```java
TableColumn<MyDataType, String> column = new TableColumn<>("Column Name");
column.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getColumnValue()));
tableView.getItems().stream()
.map(MyDataType::getRowValue)
.forEach(column::setCellValue);
tableView.addColumn(column);
```
阅读全文