首页 > 其他分享 >如何使用TableView展示表格数据

如何使用TableView展示表格数据

时间:2023-05-31 23:24:28浏览次数:64  
标签:TableView 表格 展示 studentTableView 表头 Student new name

如何使用TableView展示表格数据

TableView 可以展示一个行列二维表格。表格由表头和记录组成。

表头由若干 TableColumn 组成。

通过定义 TableView 的代码:

TableView<Student> studentTableView;

可以看出,记录的数据结构就是其模板参数。

我们可以把 Student 的 getXxx 方法映射到一个表格中,从而完成记录的创建。

效果展示

image

示例代码

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TableViewExample extends Application
{
    public static class Student 
    {
        private String name;
        private int age;
    
        public Student(String name, int age)
        {
            this.name = name;
            this.age = age;
        }
    
        public String getName() { return name; }
        public int getAge() { return age; }
    }
    

    private TableView<Student> studentTableView;

    private void onSelectItem(Student item)
    {
        System.out.println(String.format("name: %s, age: %d", item.getName(), item.getAge()));
    }

    private void buildStudentTableView()
    {
        studentTableView = new TableView<>();
        studentTableView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> onSelectItem(newValue) );
        
        TableColumn<Student, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
        TableColumn<Student, String> ageColumn = new TableColumn<>("Age");
        ageColumn.setCellValueFactory(new PropertyValueFactory<>("age"));
        
        studentTableView.getColumns().add(nameColumn);
        studentTableView.getColumns().add(ageColumn);

        studentTableView.getItems().add(new Student("Tom", 21));
        studentTableView.getItems().add(new Student("Jim", 23));
        studentTableView.getItems().add(new Student("Micle", 18));
    }

    @Override
    public void start(Stage window) throws Exception
    {
        VBox vBox = new VBox();

        this.buildStudentTableView();
        vBox.getChildren().add(studentTableView);

        Scene scene = new Scene(vBox, 400, 300);

        window.setScene(scene);
        window.setTitle(this.getClass().getSimpleName());
        window.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

代码说明

  • 这段代码由三部分组成:
    1. 定义了一个结构 Student ,其每个实例对应 TableView 的一个记录,每个字段对应 TableView 的表头列
    2. buildStudentTableView 用于创建 TableView ,并填充其内容
    3. start 函数创建了场景图,然后把创建好的 TableView 添加进去从而显示
  • studentTableView.getSelectionModel().selectedItemProperty().addListener 添加了用户选择记录时的监听事件
  • new TableColumn<> 用于创建表头列,setCellValueFactory 方法用于绑定 Student 的 getXxx 方法,从而在添加记录时设置对应的内容
  • studentTableView.getColumns().add 添加一个表头列
  • studentTableView.getItems().add 添加一个记录

总结

使用 TableView 展示表格数据的步骤如下:

  1. 定义数据结构:创建一个与 TableView 记录对应的数据结构,每个字段对应一个表头列。在示例中,使用了 Student 类作为记录的数据结构,它有 name 和 age 两个字段
  2. 创建TableView实例
  3. 创建表头列:使用 TableColumn 类创建表头列,并使用 setCellValueFactory 方法将数据结构中的字段与表头列进行绑定。在示例中,创建了两个表头列( Name 和 Age ),并将它们与 Student 类的 name 和 age 字段进行绑定
  4. 填充表格内容:使用 getItems 方法获取 TableView 的数据项列表,并使用 add 方法添加记录
  5. 设置事件监听:如果需要对用户选择记录进行响应,可以使用 selectionModel 的 selectedItemProperty 方法添加监听器来监听用户选择的记录

标签:TableView,表格,展示,studentTableView,表头,Student,new,name
From: https://www.cnblogs.com/javafx-howto/p/17447621.html

相关文章

  • 如何利用ObservableList为TableView添加Add和Del功能
    如何利用ObservableList为TableView添加Add和Del功能TableView的记录可以绑定到一个ObservableList。ObservableList是一种列表数据结构,继承自List。很多JavaFX控件都可以用ObservableList管理动态数据。利用ObservableList可以为TableView提供增加和删除数据的......
  • 大数据展示框架SuperSet 安装
    标签(空格分隔):协作框架**1.1Superset概述**ApacheSuperset是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。**1.2环境说明**本课程使用的服务器操作系统为CentOS7,Sup......
  • 如何使用TreeView展示树状数据
    如何使用TreeView展示树状数据TreeView是一个可用于显示树形数据结构的UI组件。它提供了一个可折叠、可展开的树状视图。TreeView是一个树状结构,其根节点的类型是TreeItem。每个TreeItem又可以包含若干TreeItem。由此可组成一颗树形结构。效果展示示例代码importj......
  • 利用JSP交互式打印表格
    问题:在客户端输入要打印表格的行数rows和列数cols,然后经过服务端处理打印rows*cols的表格,打印数据为i*j。html部分:文件名:input.html<html><head><title>Hello</title></head><body><formaction="input.jsp"method="post"><tablebord......
  • 42、如何把pdf里面的表格复制到Excel表格里面呢?
    要求:把pdf表格里面的价格去掉(pdf里面的表格有一个是一整张图片来的,有一个是直接表格)解决方法:直接复制的话,Excel的格式会乱的,那么这里就把pdf的内容转为word,然后在Excel表格里面复制word的内容,但是这样做也是比较慢的,         另一个表格是图片来的,这个用off......
  • “此间有书”微信小程序效果图展示
    由于上传时微信官方那边不给通过,说什么涉及到图书版权信息,明明我这个估计到这一点都没有展示图书内容(哭泣)小程序分为四个模块:广场、书城、发现、我的。广场模块就是每日推荐,有句子、音乐、电影推荐(纯属个人爱好页面)书城模块就是搜索书籍、查看书籍、然后收藏书籍、短评书籍......
  • [Quicker] 表格变量
    表格的行变量为$={表格}.Rows,是一个列表,可以遍历或者当作列表访问表格的列变量为$={表格}.Columns,是一个列表, 可以遍历或者当作列表访问 单元格的访问类似词典变量(但不同): 行变量["列名"]如:$={TableRow}["Column3"] ......
  • 天正CAD与Excel中表格如何相互导入
    本次经验来跟大家图解一下如何从天正CAD中把表格数据导入到Excel中。1.首先打开Excel软件;2.打开天正电气软件,在CAD中点击“Truetable”菜单,在下拉列表中选择“输出到Excel”;3.然后在CAD中选择要导出的区域,右键确定;4.再看下Excel中,数据已经自动导入了。......
  • ajax实现省市联动动态展示省份
    1. 什么是省市联动?  30  - 在网页上,选择对应的省份之后,动态的关联出该省份对应的市。选择对应的市之后,动态的关联出该市对应的区。(首先要清楚需求)- 进行数据库表的设计t_area(区域表)id(PK-自增) code name pcode--------------------------------------------......
  • P3704 [SDOI2017]数字表格
    简要题意令\(f(i)\)为斐波那契数列第\(i\)项的值。\(T\)组数据,对于每一个\(n,m\),求出:\[\prod_{i=1}^{n}\prod_{j=1}^{m}f(\gcd(i,j))\pmod{10^9+7}\]\(1\leqT\leq10^3,1\leqn,m\leq10^6\)思路这里将介绍一种自认为比题解更为简便的方法首先原式有\(\prod\)......