【Java】JTable的数据刷新
2021-09-23 05:14
标签:new t ati col new 列表 cat lse main win 前言 这段时间在写一个大实验,水果超市管理系统,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 中之外,还可以用 TableModel 接口的方法来包装数据,这样可将数据直接传递到 JTable,如上例所示。这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。 以上来自JavaAPI 人话说 TableModel就是存放JTable表格数据的东西 下面是一个简单的demo,希望对你有帮助 package test; import javax.swing.*; import javax.swing.table.*; public class TableTest extends JFrame { private JLabel title = new JLabel("水果列表"); //上部标题 private JScrollPane pane = new JScrollPane(); //表格滚动面板 private JTable table = new JTable(); //水果表格 public TableTest() { init();//窗口初始化 addComponent();//添加表格 updateTable();//刷新表格数据 } public static void main(String[] args) { new TableTest(); } //窗口初始化 public void init() { this.setTitle("水果管理系统!"); this.setSize(600, 420); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } //添加表格 public void addComponent() { this.setLayout(null);//设置绝对布局 //添加标题 title.setBounds(265, 20, 70, 25); this.add(title); //表格 table.getTableHeader().setReorderingAllowed(false);//列不能移动 table.getTableHeader().setResizingAllowed(false);//不可拉动表格 table.setEnabled(false);//表格不可更改数据 pane.setBounds(50, 50, 500, 200); pane.setViewportView(table);//滚动面板显示表格数据 this.add(pane); } //刷新表格数据 public void updateTable() { String[] title = {"水果编号","水果名称","水果单价(/元)","计价单位"}; Object[][] rowData = { {1,"苹果",5.5,"kg"} }; TableModel dataModel = new DefaultTableModel(rowData, title); table.setModel(dataModel); } } 【Java】JTable的数据刷新标签:new t ati col new 列表 cat lse main win 原文地址:https://www.cnblogs.com/AllenMi/p/13096922.html