我想对Matrix进行排序,例如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
我们看到第一&第3&第5列是相同的。这就是我需要的。我试图排序第二&第四&第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)
移到第一列然后{{} 1}}和(4:66)
等等,与其他列的工作相同。
我正在尝试并搜索解决这个问题,我找到排序矩阵,表格标题点击,但在这种情况下,我们只排序一列。我想排序3.除此之外,我不想要的第二件事是使用表头点击进行排序(你必须点击表头来对值进行排序)。我想在不点击的情况下自动完成。
这就是我在我的小代码中使用的内容:
(2:55)
因此,我尝试在不使用 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
选项的情况下考虑其他方法。