java - 在 JTable 中设置列​​的顺序

标签 java jtable

我有一个包含一些列的 JTable。我有一个映射到 View 中位置的列标识符的 HashMap,例如:

TableHeader1 | TableHeader2 | TableHeader3
    sth.           sth.          sth.

我知道:

TableHeader1 -> position 0
TableHeader2 -> position 1
TableHeader3 -> position 2

现在我想对列重新排序。我知道 JTable 类中有一个名为 moveColumn(A, B) 的函数。这会将一列从 A 移动到 B,并且将 B 放在左边或右边。 我的问题是,我想以特定方式对整个表进行排序,我该怎么做? 如果我使用 moveColumn,我无法知道 B 被移动到了哪里,在十分之五的情况下,它可能在右侧,而在其他情况下可能在错误的一侧。

希望你能理解我的问题:-)

最佳答案

您可以通过删除所有列并按正确顺序添加它们来更改列顺序:

public static void setColumnOrder(int[] indices, TableColumnModel columnModel) {
    TableColumn column[] = new TableColumn[indices.length];

    for (int i = 0; i < column.length; i++) {
        column[i] = columnModel.getColumn(indices[i]);
    }

    while (columnModel.getColumnCount() > 0) {
        columnModel.removeColumn(columnModel.getColumn(0));
    }

    for (int i = 0; i < column.length; i++) {
        columnModel.addColumn(column[i]);
    }
}

关于java - 在 JTable 中设置列​​的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165562/

相关文章:

java - 尝试将文本和blob从mysql检索到jtable

java - SWING JTable : How do I make each row as high as it's tallest object?

java - 更改 Jtable 中特定单元格的字体颜色

java - 为什么会抛出索引越界异常?

java - 泛型参数的实例

java - 显示从第 100 列开始的 jtable - java

java - 如何从 Jtable 中获取所有值并绘制它们的图表?

java - Applet 上未出现旋转的形状

java - 解决 JAXB 编译包含的 XSD 中的命名冲突

java - 图像尺寸变小