gpt4 book ai didi

Java JTable : Setting a primary column to always sort by first

转载 作者:行者123 更新时间:2023-11-29 08:57:01 25 4
gpt4 key购买 nike

我正在使用具有 3 列的 JTable,显示有关文件和文件夹的信息:

Col1:"file"或“文件夹”(字符串)
Col2:文件或文件夹的名称(字符串)
Col3:创建日期(时间戳)

我可以轻松地按任何列对表格进行排序。但我无法实现以下预期行为:

无论用户单击哪个列标题,文件夹都应始终显示在文件之前。所以基本上按 Col1 以除降序以外的任何顺序排序应该是不可能的。此外,如果按 Col3 排序,任何文件夹仍应显示在文件之前,无论其时间戳如何。

非常感谢有关如何执行此操作的任何提示。

你的

安德烈亚斯

最佳答案

尝试使用下一个对您有帮助的代码:

public class Example extends JFrame {

public Example() {
DefaultTableModel defaultTableModel = new DefaultTableModel(new Object[][]{{"1"},{"3"},{"2"}},new Object[]{"text"});
JTable t = new JTable(defaultTableModel);
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(defaultTableModel);
sorter.setComparator(0, new Comparator<Object>() {
@Override
public int compare(Object arg0, Object arg1) {
return arg0.toString().compareTo(arg1.toString());
}
});

t.setRowSorter(sorter);
add(new JScrollPane(t));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}

public static void main(String...strings ){
Example e = new Example();
}

}

在这里,我将第 0 列的自定义 Comparator 设置为 TableRowSorter。您可以用不同的方式将您的行与您自己的 Comparator 实现进行比较。试试吧!

Comparator

RowSorter tutorial

关于Java JTable : Setting a primary column to always sort by first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com