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

TableHeader1 | TableHeader2 | TableHeader3
    sth.           sth.          sth.

我知道:
TableHeader1 -> position 0
TableHeader2 -> position 1
TableHeader3 -> position 2

现在,我想对列进行重新排序。我知道JTable类中有一个名为moveColumn(A,B)的函数。这会将列从A移到B,并且B放置在左侧或右侧。
我的问题是,我想以一种特定的方式订购整个 table ,我该怎么做?
如果使用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/

10-10 14:44