gpt4 book ai didi

java - JTable 和排序

转载 作者:行者123 更新时间:2023-12-02 08:02:57 24 4
gpt4 key购买 nike

我对 JTable 进行排序时没有什么问题,但无法获得我想要的功能。在我的窗口中,我有类似总指挥官的东西,在一列中有文件,如果有的话,另一列中有父文件夹或字节数。我想要的是,如果我单击“文件名”列,我希望父文件夹始终位于顶部,然后是升序/降序文件夹名称,然后是升序/降序文件名,如果我单击“文件类型”,我希望目录保持不变,然后我想要按大小升序/降序排列普通文件。

我尝试玩弄 RowSorters,我自己的比较器,但正如我所说,我无法得到我想要的东西,我应该自己捕获事件,然后手动对值进行排序并更新我的模型(顺便说一句,我使用它。)?有什么优雅的方式来做我想做的事吗?

最佳答案

听起来您可能想使用树表。请查看:http://java.sun.com/products/jfc/tsc/articles/treetable1/

如果您想使用 JTable 本身,那么您可以尝试在表模型中实现排序,因为它可能更容易。

TableRowSorter<TableModel> sorter =
new TableRowSorter<TableModel>(getModel()) {
Map<Integer, SortKey> keys = new HashMap<Integer, SortKey>();

public void toggleSortOrder(int column)
{
SortKey key = keys.get(column);
SortOrder order = null;
// Get last sort order.
if (key != null) {
if (key.getSortOrder() == SortOrder.DESCENDING){
order = SortOrder.ASCENDING;
}
else {
order = SortOrder.DESCENDING;
}
}
else {
order = SortOrder.DESCENDING;
}

keys.put(new SortKey(column, order));
getTableModel().sort(keys);
}
};

setRowSorter(sorter);

关于java - JTable 和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625408/

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