java - 向 JavaFx tableView 添加一个简单的行

标签 java javafx tableview row

我对 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/

相关文章:

java - 我应该如何比较 Double 值与 Long.MAX_VALUE?和 Long.MAX_VALUE+1d

java - 如何让球在 JavaFX 中从墙上反弹?

JavaFX Canvas 绘制具有透明度的图像

ios - 为什么我的 tableViewController 没有加载任何数据?

ipad - swift iPad 表格 View 不透明

java - 如何为多个服务器配置 appdynamics?

java - 如何处理 .CER 文件

java - 如何将 groovy (gradle) 内部的 vm 参数设置为 Tomcat?

javafx,如何在打印到文本区域时显示进度条

java - 如何在表构造的所有列之间分配总宽度?”