JavaFX TableView

步骤

0. 项目结构
1. 定义数据模型
2. FXML
3. Controller
4. Stage
5. 效果展示





项目结构

在这里插入图片描述





定义数据模型
public class Person {
    private StringProperty name;
    private IntegerProperty id;

    public Person(String name, Integer id) {
        this.name = new SimpleStringProperty(name);
        this.id = new SimpleIntegerProperty(id);
    }

    public Integer getId() {
        return this.id.get();
    }

    public String getName() {
        return this.name.get();
    }

    public void setId(Integer id) {
        this.id.set(id);
    }

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




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

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
      prefWidth="600.0" style="-fx-background-color: bisque;" xmlns="http://javafx.com/javafx/10.0.2-internal"
      xmlns:fx="http://javafx.com/fxml/1" fx:controller="tech.zger.controller.MainController">
    <children>
        <TableView fx:id="tableView" layoutX="182.0" layoutY="120.0" prefHeight="200.0" prefWidth="200.0">
            <columns>
                <TableColumn fx:id="tcName" prefWidth="103.20001220703125" text="姓名"/>
                <TableColumn fx:id="tcId" prefWidth="96.0" text="学号"/>
            </columns>
        </TableView>
    </children>
</Pane>




Controller
public class MainController implements Initializable {
    @FXML
    private TableView<Person> tableView;
    @FXML
    private TableColumn<Person, String> tcName;
    @FXML
    private TableColumn<Person, Integer> tcId;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        ObservableList<Person> data = FXCollections.observableArrayList();
        data.addAll(
                new Person("zg", 1),
                new Person("zz", 2),
                new Person("zc", 3),
                new Person("zx", 4)
        );
        // 对应Person的各个属性
        tcId.setCellValueFactory(new PropertyValueFactory<>("id"));
        tcName.setCellValueFactory(new PropertyValueFactory<>("name"));
        tableView.setItems(data);
    }
}




Stage
public class MainApplication extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        try {
            Pane pane = FXMLLoader.load(getClass().getResource("/view/main.fxml"));
            Scene scene = new Scene(pane, 600, 400);
            primaryStage.setScene(scene);
            primaryStage.setTitle("TableView");
            // 设置图标
            primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/logo/zg.jpg")));
            primaryStage.show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}





效果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值