javafx如何使用scenebuilder创建表格, 并向其添加数据

发布时间 2023-06-27 10:39:37作者: 挪威森林猫Zzz
1. 新建JavaFX项目 , 并用scenebuilder 打开项目 fxml文件 .

   将此部件拉到界面中, 并设置好.

  1.  表格的fx:id    2. 设置好列名  3. 设置好每个列的 fx:id

2. 点击这里

  如果你们表格和列都设置好了 fx:id , 这里是有代码

 直接复制, 替换掉我们原来的  HelloController.java里面的内容

3. 创建一个 User类.
并设置好构造函数, setter , getter .

User.java

package com.example.demo;

public class User {
    private String name;
    private  Integer age;
    private String animal;

    public User(String name, int age, String animal) {
        this.name = name;
        this.age = age;
        this.animal = animal;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAnimal() {
        return animal;
    }

    public void setAnimal(String animal) {
        this.animal = animal;
    }
}

 

4.由于我们之前已经是复制过scenebuilder的代码., 所以里面已经包含了 tableview和column对象, 现在 让 HelloController 实现 initialize 接口
HelloCtroller.java  代码如下.  具体就是实现接口, 将User 和 column 与界面的列绑定 , 添加数据 . 载入数据 .

package com.example.demo;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

import java.net.URL;
import java.util.ResourceBundle;

public class HelloController implements Initializable {

    @FXML
    private TableColumn<User, Integer> age;

    @FXML
    private TableColumn<User, String> animal;

    @FXML
    private TableColumn<User, String> name;

    @FXML
    private TableView<User> tableview1;

    ObservableList<User> list = FXCollections.observableArrayList(
            new User("Daninel",20,"Dog"),
            new User("Anna",20,"Cat"),
            new User("Marc",20,"Bird")
    );
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        name.setCellValueFactory(new PropertyValueFactory<User,String>("name"));
        age.setCellValueFactory(new PropertyValueFactory<User,Integer>("age"));
        animal.setCellValueFactory(new PropertyValueFactory<User,String>("animal"));
        tableview1.setItems(list);
    }
}

  


 

参考教程:      www.油土鳖.com/watch?v=fnU1AlyuguE
网址自己替换下..