用來創建表格的 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)方法為排序器設置表格模型。
以上就是本文的所有內容,謝謝大家對本站的支持,后面更加精彩!