淺談Java利用表格模型創(chuàng)建表格 原創(chuàng)
用來創(chuàng)建表格的 JTable 類并不負(fù)責(zé)存儲表格中的數(shù)據(jù),而是由表格模型負(fù)責(zé)存儲。當(dāng)利用 JTable 類直接創(chuàng)建表格時,只是將數(shù)據(jù)封裝到了默認(rèn)的表格模型中。接下來,我們來學(xué)習(xí)表格模型的使用方法。
利用表格模型創(chuàng)建表格
接口 TableModel 定義了一個表格模型,抽象類 AbstractTableModel 實(shí)現(xiàn)了 TableModel 接口的大部分方法,只有一下三個抽象方法沒有實(shí)現(xiàn)。
(1)public int getRowCount() (2)public int getColumnCount() (3)public Object getValueAt(int rowIndex , int columnIndex)
通過繼承 AbstractTableModel 類實(shí)現(xiàn)上面三個抽象方法可以創(chuàng)建自己的表格模型類。DefaultTableModel 類便是由 Swing 提供的繼承了 AbstractTableModel 類并實(shí)現(xiàn)了上面三個抽象方法的表格模型類。
表格模型創(chuàng)建完成后,通過 JTable 類的構(gòu)造方法 JTable(TableModel dm)創(chuàng)建表格,就實(shí)現(xiàn)了利用表格模型創(chuàng)建表格。
從JDK 1.6 開始,提供了對表格進(jìn)行排序的功能。通過 JTable 類的 setRowSoreter(RowSorter<?extends TableModel>sorter)方法可以為表格設(shè)置排序器。TableRowSorter 類是由Swing 提供的排序器類。為表格設(shè)置排序器的典型代碼如下:
DefaultTableModel tableModel = new DefaultTableModel(); //創(chuàng)建表格模型 JTable table = new JTable(tableModel); //創(chuàng)建表格 table.setRowSorter(new TableRowSorter(tableModel)); //設(shè)置排序器
如果為表格設(shè)置了排序器,當(dāng)單機(jī)表格的某一列頭時,在該列名稱的后面將出現(xiàn)▲標(biāo)記,說明按該列升序排列表格中的所有行;當(dāng)再次單機(jī)該列頭時,標(biāo)記將變成▼,說明按該列降序排列表格中的所有行。
注意:
在使用表格排序器時,通常要為其設(shè)置表格模型。一種方法是通過構(gòu)造方法 TableRowSorter(TableModel model)創(chuàng)建排序器;另一種方法是通過 setModel(TableModel model)方法為排序器設(shè)置表格模型。
以上就是本文的所有內(nèi)容,謝謝大家對本站的支持,后面更加精彩!
相關(guān)文章
Java實(shí)現(xiàn)使用Websocket發(fā)送消息詳細(xì)代碼舉例
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)使用Websocket發(fā)送消息的相關(guān)資料,WebSocket是一種協(xié)議,用于在Web應(yīng)用程序和服務(wù)器之間建立實(shí)時、雙向的通信連接,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄
這篇文章主要介紹了使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Java之實(shí)現(xiàn)十進(jìn)制與十六進(jìn)制轉(zhuǎn)換案例講解
這篇文章主要介紹了Java之實(shí)現(xiàn)十進(jìn)制與十六進(jìn)制轉(zhuǎn)換案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08

