gpt4 book ai didi

java - 从 JTable 中的排序中排除列

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:55:59 25 4
gpt4 key购买 nike

我有一个简单的 Swing JTable 和一个自己制作的 TableRowSorter。但是,我会将第一列排除在排序之外,因为我想保留它以显示行号。我找不到任何东西,除了

sorter.setSortable(0, false);

这使得该列不可单击,但在单击另一列时仍可排序...那么快速的问题就是:如何防止列被 TableRowSorter 排序?

谢谢!

最佳答案

因此,使用 JTable(如下所示)对 A 列进行排序将产生以下结果。但是,您希望对数据而不是行号进行排序,对吗?

|row| column A  |       |row| column A  |
+---+-----------+ +---+-----------+
| 1 | blah blah | --> | 1 | blah blah |
| 2 | something | | 3 | more blah |
| 3 | more blah | | 2 | something |

我会用 TableCellRenderer 来解决这个问题对于第 0 列。诀窍是忽略传递的值,而是使用行参数。

public class RowRenderer extends JLabel implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object color,
boolean isSelected, boolean hasFocus, int row, int column) {
setText(Integer.toString(row));
return this;
}
}

注意:如果您要对表格进行分页(即模型不包含所有行;例如仅包含第 100-200 行),您需要告知单元格渲染器要分页的数量添加到 row 以获取要显示的行号。

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

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