用哈希表给javafx的tableview填入数据
时间: 2023-08-15 21:35:34 浏览: 74
数据结构哈希表(共48张PPT)精选.pptx
要使用哈希表给JavaFX的TableView填入数据,可以按照以下步骤:
1. 创建一个哈希表,用于存储数据。例如:
```java
HashMap<String, String> data = new HashMap<>();
data.put("name", "John");
data.put("age", "30");
data.put("city", "New York");
```
2. 创建一个ObservableList,用于存储TableView的行数据。ObservableList可以自动触发TableView的更新操作。
```java
ObservableList<HashMap<String, String>> rows = FXCollections.observableArrayList();
```
3. 将哈希表添加到ObservableList中。
```java
rows.add(data);
```
4. 创建TableView的列,并将哈希表中的键和值分别绑定到列的CellValueFactory和textProperty中。
```java
TableColumn<HashMap<String, String>, String> nameCol = new TableColumn<>("Name");
nameCol.setCellValueFactory(new MapValueFactory<>("name"));
nameCol.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().get("name")));
TableColumn<HashMap<String, String>, String> ageCol = new TableColumn<>("Age");
ageCol.setCellValueFactory(new MapValueFactory<>("age"));
ageCol.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().get("age")));
TableColumn<HashMap<String, String>, String> cityCol = new TableColumn<>("City");
cityCol.setCellValueFactory(new MapValueFactory<>("city"));
cityCol.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().get("city")));
```
5. 将列添加到TableView中。
```java
TableView<HashMap<String, String>> table = new TableView<>();
table.setItems(rows);
table.getColumns().addAll(nameCol, ageCol, cityCol);
```
6. 最后,将TableView添加到场景中。
```java
Scene scene = new Scene(table);
primaryStage.setScene(scene);
primaryStage.show();
```
这样,就可以使用哈希表给JavaFX的TableView填入数据了。
阅读全文