【Java】JTable的数据刷新

在开发一个水果超市管理系统时遇到UI层的表格数据刷新问题。Java中的TableModel接口是解决这个问题的关键,它定义了JTable获取数据模型的方法。通过实现TableModel接口并用JTable的构造函数设置数据模型,可以灵活地更新表格数据。DefaultTableModel是TableModel的一个实现,使用Vector存储单元格数据,提供了高效的数据传递方式。以下是一个简单的示例代码,展示了如何使用TableModel更新JTable的数据。
摘要由CSDN通过智能技术生成

前言

这段时间在写一个大实验,水果超市管理系统,yes,我觉得挺大的,但是就当成了一个实验,接下来还有一个课程设计和一个实训,more bigger…

问题

在我把其他的都写好的时候去写UI层,发现,我的表格刷新是一个大问题,那么究竟怎么灵活的设置表格中的数据呢?

这就不得不提一下TableModel这个怪东西了

TableModel:

public interface TableModelTableModel 接口指定了 JTable 用于询问表格式数据模型的方法。
只要数据模型实现了 TableModel 接口,就可以通过以下两行代码设置 JTable 显示该模型:
TableModel myData = new MyTableModel();
JTable table = new JTable(myData);

DefaultTableModel(Object[][] data, Object[] columnNames)

构造一个 DefaultTableModel,并通过将 data 和 columnNames 传递到 setDataVector 方法来初始化该表。

JTable:

DefaultTableModel 是一个模型实现,它使用一个 Vector 来存储所有单元格的值,该 Vector 由包含多个 Object 的 Vector 组成。除了将数据从应用程序复制到 DefaultTableModel 中之外ÿ

实现 JTable 数据的动态更新可以通过以下步骤完成: 1. 创建 JTable 对象并设置表格模型。 2. 创建一个数据模型并将其与表格模型绑定。 3. 创建一个数据源,可以是数据库或者其他数据来源。 4. 将数据源中的数据填充到数据模型中。 5. 将数据模型中的数据更新到表格模型中。 6. 调用 JTable 的 repaint() 方法刷新表格。 下面是一个简单的示例代码,演示了如何在 JTable 中实现数据动态更新: ```java import javax.swing.*; import javax.swing.table.DefaultTableModel; public class DynamicTableDemo extends JFrame { private DefaultTableModel model; private JTable table; public DynamicTableDemo() { // 创建表格模型 model = new DefaultTableModel(new String[]{"ID", "Name", "Age"}, 0); // 创建 JTable 并设置表格模型 table = new JTable(model); // 将 JTable 添加到窗口 add(new JScrollPane(table)); // 添加数据 addData(1, "Alice", 25); addData(2, "Bob", 30); addData(3, "Charlie", 35); // 设置窗口参数 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setLocationRelativeTo(null); setVisible(true); } private void addData(int id, String name, int age) { // 添加数据数据模型中 model.addRow(new Object[]{id, name, age}); // 刷新 JTable table.repaint(); } public static void main(String[] args) { new DynamicTableDemo(); } } ``` 在上面的示例中,我们创建了一个 JTable 并设置了表格模型。然后通过调用 addData() 方法向表格中添加数据。在 addData() 方法中,我们首先向数据模型中添加数据,然后调用 JTable 的 repaint() 方法刷新表格。这样就可以实现 JTable 数据的动态更新了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值