我想对矩阵“例如 6 行 x 6 列”进行排序,就像这样:
0 | 15 | 0 | 06 | 0 | 04
1 | 19 | 1 | 99 | 1 | 86
2 | 55 | 2 | 54 | 2 | 12
3 | 82 | 3 | 73 | 3 | 23
4 | 66 | 4 | 95 | 4 | 11
5 | 43 | 5 | 93 | 5 | 13
我们看到第 1 列和第 3 列和第 5 列是相同的。这就是我需要的。我试图以降序方式对第 2 列和第 4 列和第 6 列进行排序以获得此结果:
3 | 82 | 1 | 99 | 1 | 86
4 | 66 | 4 | 95 | 3 | 23
2 | 55 | 5 | 93 | 5 | 13
5 | 43 | 3 | 73 | 2 | 12
1 | 19 | 2 | 54 | 4 | 11
0 | 15 | 0 | 06 | 0 | 04
当我移动第二列的最大值时,我也将他的号码或他的名字移动到第一列,例如,我们移动(3:82)
到第一位然后(4:66)
等等(2:55)
,同样的工作到其他列。
我正在尝试解决这个问题,我发现点击表格标题的排序矩阵,但在这种情况下,我们只对一列进行排序。我想排序 3。除此之外,我不想要的第二件事是使用表头单击进行排序(您必须单击表头才能对值进行排序)。我想在不点击的情况下自动完成。
这就是我在我的小代码中使用的:
Table2.setPreferredScrollableViewportSize(Table2.getPreferredSize());
Table2.setAutoCreateRowSorter(true);
DefaultRowSorter sorter = ((DefaultRowSorter)Table2.getRowSorter());
ArrayList list = new ArrayList();
list.add( new RowSorter.SortKey(2, SortOrder.DESCENDING) );
sorter.setSortKeys(list);
sorter.sort();
JScrollPane scrollPane = new JScrollPane( Table2 );
getContentPane().add( scrollPane );
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 300);
frame.setVisible(true);
因此,我试图在不使用JTable
andgetRowSorter
选项的情况下考虑其他方法来做到这一点。