Реализовал методы так, но валик не принимает. Может быть я что-то не понимаю:
public static List<Column> getVisibleColumns() {
        List<Column> result = new LinkedList<>();
        for (int i = 0; i < realOrder.length; i++) {
            if (realOrder[i] != -1) {
                if (realOrder[i] > result.size()) {
                    result.add(Column.values()[i]);
                } else if (realOrder[i] == result.size()) {
                    result.add(realOrder[i] - 1, Column.values()[i]);
                }
                else {
                    result.add(realOrder[i], Column.values()[i]);
                }
            }
        }
        return result;
    }
...
public void hide() {
        if (this.isShown()) {
            int order = realOrder[this.ordinal()];
            for (int i = 0; i < realOrder.length; i++) {
                if (i == this.ordinal()) {
                    realOrder[i] = -1;
                } else if (realOrder[i] > order && realOrder[i] > 0) {
                    realOrder[i]--;
                }
            }
        }
    }