javafx如何使用scenebuilder创建表格, 并向其添加数据
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
网址自己替换下..