javaFX tableview绑定

TableView的数据绑定需要一个类型绑定
类里面必须有property
Student类(需要导入的类)

package sample;

import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;

public class Student {
    private SimpleStringProperty name=new SimpleStringProperty();
    private SimpleStringProperty id=new SimpleStringProperty();
    public Student(String name,String id)
    {
        setName(name);
        setId(id);
    }
    public String getName()
    {
        return name.get();
    }
    public SimpleStringProperty nameProperty()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name.set(name);
    }
    public String getId()
    {
        return id.get();
    }
    public void setId(String id)
    {
        this.id.set(id);
    }
    public SimpleStringProperty idProperty()
    {
        return id;
    }
}

Controller类

package sample;

import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;

public class Controller {

    @FXML
    private TableView<Student> personTable;

    @FXML
    private TableColumn<Student, String> nameCol;

    @FXML
    private TableColumn<Student, String> idCol;

    private ObservableList<Student> personData= FXCollections.observableArrayList();
    @FXML
    private void initialize()
    {
        idCol.setCellValueFactory(cellData->cellData.getValue().idProperty());
        nameCol.setCellValueFactory(cellData->cellData.getValue().nameProperty());
        personTable.setItems(personData);
        personData.add(new Student("A","01"));
    }
}

FXML类

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <children>
      <TableView fx:id="personTable" layoutX="86.0" layoutY="85.0" prefHeight="200.0" prefWidth="365.0">
         <columns>
            <TableColumn fx:id="nameCol" prefWidth="75.0" text="name" />
            <TableColumn fx:id="idCol" prefWidth="75.0" text="id" />
         </columns></TableView>
   </children>
</AnchorPane>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLeRnotfalled

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值