1

我想对矩阵“例如 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); 

因此,我试图在不使用JTableandgetRowSorter选项的情况下考虑其他方法来做到这一点。

4

0 回答 0