浅谈Java利用表格模型创建表格

时间:2022-09-22 14:06:10

        用来创建表格的 JTable 类并不负责存储表格中的数据,而是由表格模型负责存储。当利用 JTable 类直接创建表格时,只是将数据封装到了默认的表格模型中。接下来,我们来学习表格模型的使用方法。

利用表格模型创建表格

        接口 TableModel 定义了一个表格模型,抽象类 AbstractTableModel 实现了 TableModel 接口的大部分方法,只有一下三个抽象方法没有实现。

?
1
2
3
4
5
1public int getRowCount()
 
2public int getColumnCount()
 
3public Object getValueAt(int rowIndex , int columnIndex)

 

        通过继承 AbstractTableModel 类实现上面三个抽象方法可以创建自己的表格模型类。DefaultTableModel 类便是由 Swing 提供的继承了 AbstractTableModel 类并实现了上面三个抽象方法的表格模型类。

        表格模型创建完成后,通过 JTable 类的构造方法 JTable(TableModel dm)创建表格,就实现了利用表格模型创建表格。

        从JDK 1.6 开始,提供了对表格进行排序的功能。通过 JTable 类的 setRowSoreter(RowSorter<?extends TableModel>sorter)方法可以为表格设置排序器。TableRowSorter 类是由Swing 提供的排序器类。为表格设置排序器的典型代码如下:

?
1
2
3
DefaultTableModel tableModel = new DefaultTableModel(); //创建表格模型
JTable table = new JTable(tableModel);   //创建表格
table.setRowSorter(new TableRowSorter(tableModel)); //设置排序器

        如果为表格设置了排序器,当单机表格的某一列头时,在该列名称的后面将出现▲标记,说明按该列升序排列表格中的所有行;当再次单机该列头时,标记将变成▼,说明按该列降序排列表格中的所有行。

注意:

        在使用表格排序器时,通常要为其设置表格模型。一种方法是通过构造方法 TableRowSorter(TableModel model)创建排序器;另一种方法是通过 setModel(TableModel model)方法为排序器设置表格模型。

        以上就是本文的所有内容,谢谢大家对本站的支持,后面更加精彩!