用来创建表格的 JTable 类并不负责存储表格中的数据,而是由表格模型负责存储。当利用 JTable 类直接创建表格时,只是将数据封装到了默认的表格模型中。接下来,我们来学习表格模型的使用方法。
利用表格模型创建表格
接口 TableModel 定义了一个表格模型,抽象类 AbstractTableModel 实现了 TableModel 接口的大部分方法,只有一下三个抽象方法没有实现。
1
2
3
4
5
|
( 1 ) public int getRowCount() ( 2 ) public int getColumnCount() ( 3 ) public 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)方法为排序器设置表格模型。
以上就是本文的所有内容,谢谢大家对本站的支持,后面更加精彩!