如何在 JavaFX 中使用字符串数组列表填充 TableView
How to populate TableView with String Arraylist in JavaFX
我想用 TableView
填充
String, String
我只有两列。我做不到。
到目前为止我尝试的是:
ObservableList<String> data = FXCollections.observableArrayList();
for (blabla){
data.addAll(Id,Name);
}
tableView.getItems().addAll(data);
table 上没有任何显示。但是当我执行 tableView.getItems()
并打印它时,我看到了我添加的数据。但是在 table 上什么也没有显示。
我按如下方式创建专栏:
TableColumn idColumn = new TableColumn("Id");
TableColumn nameColumn = new TableColumn("Name");
我在 Internet 上看到一些示例,其中创建了一个对象来填充 TableView
,但我不想仅为 table 视图创建一个 class。有没有其他可能的方法来完成这个?
编辑:
我只想拥有类似的东西:
ObservableList<String,String> data = FXCollections.observableArrayList();
for(int i = 1; i<blabla i++){
data.add((i)+"S",myList.get(i));
}
首先,您必须在 FXML 文件或代码中创建 table'c 列。
之后,您必须创建单元格值工厂,它将使用您的数据生成列。
例如:
@FXML
private TableView<String> tableView;
@FXML
private TableColumn<String, String> columnOne;
@FXML
private TableColumn<String, String> columnTwo;
columnOne.setCellValueFactory(c -> new SimpleStringProperty(new String("123")));
columnTwo.setCellValueFactory(c -> new SimpleStringProperty(new String("456")));
没有 FXML:
private TableView<String> table = new TableView<String>();
TableColumn columnOne = new TableColumn("One");
TableColumn columnTwo = new TableColumn("Two");
table.getColumns().addAll(columnOne, columnTwo);
columnOne.setCellValueFactory(c -> new SimpleStringProperty(new String("123")));
columnTwo.setCellValueFactory(c -> new SimpleStringProperty(new String("456")));
table.getItems().addAll("Column one's data", "Column two's data");
我想用 TableView
填充
String, String
我只有两列。我做不到。
到目前为止我尝试的是:
ObservableList<String> data = FXCollections.observableArrayList();
for (blabla){
data.addAll(Id,Name);
}
tableView.getItems().addAll(data);
table 上没有任何显示。但是当我执行 tableView.getItems()
并打印它时,我看到了我添加的数据。但是在 table 上什么也没有显示。
我按如下方式创建专栏:
TableColumn idColumn = new TableColumn("Id");
TableColumn nameColumn = new TableColumn("Name");
我在 Internet 上看到一些示例,其中创建了一个对象来填充 TableView
,但我不想仅为 table 视图创建一个 class。有没有其他可能的方法来完成这个?
编辑:
我只想拥有类似的东西:
ObservableList<String,String> data = FXCollections.observableArrayList();
for(int i = 1; i<blabla i++){
data.add((i)+"S",myList.get(i));
}
首先,您必须在 FXML 文件或代码中创建 table'c 列。 之后,您必须创建单元格值工厂,它将使用您的数据生成列。
例如:
@FXML
private TableView<String> tableView;
@FXML
private TableColumn<String, String> columnOne;
@FXML
private TableColumn<String, String> columnTwo;
columnOne.setCellValueFactory(c -> new SimpleStringProperty(new String("123")));
columnTwo.setCellValueFactory(c -> new SimpleStringProperty(new String("456")));
没有 FXML:
private TableView<String> table = new TableView<String>();
TableColumn columnOne = new TableColumn("One");
TableColumn columnTwo = new TableColumn("Two");
table.getColumns().addAll(columnOne, columnTwo);
columnOne.setCellValueFactory(c -> new SimpleStringProperty(new String("123")));
columnTwo.setCellValueFactory(c -> new SimpleStringProperty(new String("456")));
table.getItems().addAll("Column one's data", "Column two's data");