如何在JavaFX中使用字符串Arraylist填充TableView

我想填充TableViewString, String 我只有两列。我做不到 到目前为止,我尝试过的是:

ObservableList<String> data = FXCollections.observableArrayList();

for (blabla){

data.addAll(Id,Name);

}

tableView.getItems().addAll(data);

桌上什么也没显示。但是当我进行tableView.getItems()打印时,我看到的是我添加的数据。但是在桌子上什么也没显示。

我创建列如下:

TableColumn idColumn = new TableColumn("Id");

TableColumn nameColumn = new TableColumn("Name");

我在Internet上看到了一些示例,这些示例中创建了一个对象来填充对象,TableView但我不想仅为表视图创建类。还有其他可行的方法吗?

编辑:

我只想拥有这样的东西:

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");

以上是 如何在JavaFX中使用字符串Arraylist填充TableView 的全部内容, 来源链接: utcz.com/qa/403652.html

回到顶部