如何在JavaFX中使用String Arraylist填充TableView [英] How to populate TableView with String Arraylist in JavaFX

查看:233
本文介绍了如何在JavaFX中使用String Arraylist填充TableView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用
填充 TableView 字符串,字符串
我只有两个列。我不能这样做。
我到目前为止尝试的是:

I want to populate TableView with String, String I have only two columns. I couldn't do it. What I tried so far is:

ObservableList<String> data = FXCollections.observableArrayList();
for (blabla){
data.addAll(Id,Name);
}
tableView.getItems().addAll(data);

并且表中没有显示任何内容。但是当我执行 tableView.getItems()并打印它时,我会看到我添加的数据。但在桌面上,没有显示任何内容。

and nothing shows on table. But when I do tableView.getItems() and print it, I see the data I've added. But on table, nothing is shown.

我创建我的列如下:

TableColumn idColumn = new TableColumn("Id");

TableColumn nameColumn = new TableColumn("Name");

我在互联网上看到一些例子,其中创建了一个对象来填充 TableView 但我不想仅为表视图创建一个类。有没有其他可能的方法来实现这个目标?

I see some examples on the internet in which an object is created to populate the TableView but I don't want to create a class just for a table view. Is there any other possible ways to accomplish this?

编辑:

我只想要这样的东西:

I just want to have something like:

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

for(int i = 1; i<blabla i++){
data.add((i)+"S",myList.get(i));
}


推荐答案

首先,您必须创建您在FXML文件中的table'c列或代码。
之后,您必须创建单元格值工厂,它将生成包含您数据的列。

First, you have to create your table'c columns in the FXML file or from code. After, you have to create cell value factory which will generate your columns with your data.

例如:

@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中使用String Arraylist填充TableView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆