我想按一列中的日期對Jtable進行排序,但僅以dd-MM-yyyy格式顯示日期。因此,所有條目都是相同的,只有不可見的秒數不同。Swing JTable按日期排序
我有一個TableModel的與下面的方法獲取數據:
@Override
public Object getValueAt(int row, int col) {
Object[][] tableData = new Object[rowDataMap.keySet().size()][1];
int index = 0;
for (Long key : pane.nqm_messages.keySet())
{
Date date = rowDataMap.get(key);
SimpleDateFormat form = new SimpleDateFormat("dd-MM-yyyy");
String outputDate = form.format(date);
tableData[index][0] = outputDate;
index++;
}
return tableData[row][col];
}
這裏是我的TableRowSorter還,我要對行進行排序:如果我那樣做
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
List<SortKey> keys = new ArrayList<SortKey>();
SortKey sortKey;
sorter.setComparator(0, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
//Sort dd-MM-yyyy
}
});
我不能排序,因爲字符串是obv。全部都一樣。 當我直接使用這樣的
資料表[索引]的時間對象[0] =日期
我不知道如何以正確的格式顯示,但排序可以做到的。
我該如何做到這兩點?
沒有返回值的字符串表示,返回該值本身並相應地實現columnClass的 – kleopatra
除了什麼克列奧帕特拉指出,這是完全不能勝任要嘗試在單元 – MadProgrammer
的每個請求上構建顯示數據,除此之外,您的模型實現看起來很腥意:a)爲什麼僅在需要返回單個值時創建完整的2d數組? b)爲什麼每次調用getValueAt時創建單一值?如果它是動態的,它可能會在不同的調用之間改變,那麼模型很可能是行爲不當,因爲沒有通知它的聽衆c)格式化日期是一個渲染器(不是模型)的責任,對於建議來說是 – kleopatra