【问题标题】:How to populate TableView with String Arraylist in JavaFX如何在 JavaFX 中使用 String Arraylist 填充 TableView
【发布时间】:2018-06-01 19:18:28
【问题描述】:

我想用TableView 填充 String, 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));
}

【问题讨论】:

  • 免责声明:我不知道 JavaFX。我想你的第一个 sn-p 中的“blabla”可能很重要——你能提供简单的版本吗?另外:查看 javadocs,我会尝试使用 setItems(...) 而不是 getItems().addAll(...)。请参阅“创建 TableView”中的示例:docs.oracle.com/javase/8/javafx/api/javafx/scene/control/…
  • 正如我在问题中所说,我不想为此创建一个类;正如您在 javadocs 中看到的,他们在示例中创建了一个类以将数据放入 observableList。也许这是唯一的方法。我问是因为我认为应该有另一种方式
  • Here's 一个旧示例,它从制表符分隔的文件中填充表视图,仅使用字符串列表。你为什么不想创建一个类来表示你的数据?这是在 Java 中做事的常用方式。

标签: java javafx tableview javafx-8


【解决方案1】:

首先,您必须在 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");

【讨论】:

  • 没有 FXML 怎么办?
猜你喜欢
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 2014-10-08
  • 2018-10-14
相关资源
最近更新 更多