簡體   English   中英

如何按行值對列進行排序?

[英]How can I sort Columns by Row values?

在線上有太多關於如何按列值對JTable的進行排序的示例。

目前,我正在通過實現AbstractTableModel並重寫getColumnClass來返回數據的實際類來進行此操作。 然后調用setAutoCreateRowSorter

如何按行值對JTable中的進行排序?

1)提取所有值TableHeader到賣空陣列(可能是方法AbstractTableModel

2)在數組內部循環並調用

TableColumn column = table.getColumnModel().moveColumn(columnIndex, newIndex);

3)對於使用模型與視圖(反之亦然)的所有方法,必須添加

table/model#convertXxxIndexToXxx

4)對於重置,您必須通過調用在AbstractTableModel創建方法

fireTableDataChanged(); or fireTableStructureChanged(); // not sure in this case

5)關於以上兩個fireTableXxxXxx的通知

This can be a problem if you have added any custom renderers or editor to 
the table as you would lose them (by @camickr)

只需在JTable上定義並設置RowSorter。 這是一個簡單的教程:

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting

您可以通過單擊列標題對值進行排序(如果您要這樣)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM