5

Jtable を 1 つの列の日付で並べ替えたいのですが、日付は dd-MM-yyyy の形式でのみ表示します。したがって、すべてのエントリは同じで、表示されない秒のみが異なります。

次のメソッドでデータを取得する 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 
    }
});

そのようにすると、文字列がわかりにくいため、並べ替えることができません。すべて同じです。そのような日付オブジェクトを直接使用すると

tableData[index][0] = 日付

正しい形式で表示する方法はわかりませんが、並べ替えはできます。

どうすれば両方を達成できますか?

4

2 に答える 2