我对 TableView
和在 JavaFx 中自定义它还很陌生。我已经学习了很多教程,我已经理解了一些,但坚持将行添加到我的表中。
例如,我有一个名为 Table1
的表。根据我的理解,我可以创建列 ArrayList
和:
for (int i = 0; i <= columnlist.size() - 1; i++) {
TableView col = new TableView(columnlist.get(i));
Table1.getColumns().add(col);
}
现在如何向其中添加一行?如果你能给我一个非常简单的例子,我将不胜感激,因为我已经看过其他例子,但它们太复杂了:)
最佳答案
您不能以这种方式创建您的专栏。 TableView
构造函数将 ObservableList
作为其参数,但它希望在其中找到表值,换句话说,就是您的行。
恐怕没有任何通用的方法可以将项目添加到您的表中,因为每个表都或多或少地与其数据模型耦合。假设您有一个要显示的 Person
类。
public class Person {
private String name;
private String surname;
public Person(String name, String surname) {
this.name = name;
this.surname = surname;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
}
为此,您必须创建表格及其两列。 PropertyValueFactory
将从您的对象中获取必要的数据,但您必须确保您的字段具有遵循标准命名约定的访问器方法(getName()
,getSurname()
等)。否则将无法正常工作。
TableView tab = new TableView();
TableColumn nameColumn = new TableColumn("Name");
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn surnameColumn = new TableColumn("Surname");
surnameColumn.setCellValueFactory(new PropertyValueFactory<>("surname"));
tab.getColumns().addAll(nameColumn, surnameColumn);
现在您所要做的就是创建您的 Person
对象并将其添加到表项中。
Person person = new Person("John", "Doe");
tab.getItems().add(person);
关于java - 向 JavaFx tableView 添加一个简单的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39366828/