Percorrer colunas, como proceder?

Estou usando um método para percorrer apenas 4 colunas especificadas de uma jtable dando “Tab”, mas o meu código está indo até a ultima coluna e descendo para a de baixo. Gostaria que ele pulasse para a de baixo, mas que fosse para o inicio da coluna novamente. Exemplo: ele vai percorrer a coluna 30, 31, 32 e 33 ao chegar na 33, ele pula pra linha d baixo e começa na 30 novamente. O o meu código vai para a 30, 31, 32 e 33 e depois já pula para a 33 da linha de baixo e de baixo e de baixo… e assim vai. alguém poderia me ajudar?

Segue o código que estou utilizando.

CadresultadoTabela.getColumnModel().setSelectionModel(new DefaultListSelectionModel() {
            private boolean isSelectable(int index0, int index1) {
//                 TODO: Decide if this column index is selectable
                return index0 >= 30 && index1 <= 33;

            }

            @Override
            public void setSelectionInterval(int index0, int index1) {
                if (isSelectable(index0, index1)) {
                    super.setSelectionInterval(index0, index1);
                }
            }

            @Override
            public void addSelectionInterval(int index0, int index1) {
                if (isSelectable(index0, index1)) {
                    super.addSelectionInterval(index0, index1);
                }
            }
        });

Uma tabela deve ser compreendida como uma matriz.
O que você procura fazer é o equivalente a percorrer uma matriz, usando intervalos de colunas.
Ex.:

    //percorrendo intervalo matricial
    private void intervaloColuna(int inicio, int fim) {
        for (int linha = 0; linha < suatabela.getRowCount(); linha++) {
            //o proximo for é responsável por percorrer as colunas de acordo com o intervalo, em quanto o primeiro, está responsável pelas linhas
            for (int coluna = inicio; coluna <= fim; coluna++) {//dependendo do entendimento, pode ser usado coluna < fim, dentro deste for
                System.out.print(suatabela.getValueAt(linha, coluna) + " ");
            }
            System.out.println("");
        }
    }

Vc deve prever o ArrayIndexOutOfBoundsException, além de ter outras cautelas, a exemplo de trocar inicio com fim, inicio > fim e outras exceções que aparecerem.