Problema para selecionar checkboxes[RESOLVIDO]

Ola,
eu tenho uma tela em que eu adiciono um painel com varias checkboxes,eu queria selecionar algumas destas(as que tivessem o texto igual ao de algum item de uma lista que eu pesquiso e adiciono o resultado do banco)só que eu até consegui selecionar as checkboxes desta formas so se os textos forem exatamente iguais ao da lista…se tem um item a mais ou a menos não seleciona nenhum item :frowning: e o pior é que imprime o conteudo qq eu coloquei num system dentro deste laço do if :shock:
meu código é o seguinte:

if(painelEnsinoMedio!=null) { Component[] components = painelEnsinoMedio.getComponents(); for (Component component : components) { if ( component instanceof JCheckBox ) { for(int i=0;i<disciplinasDoBanco.size();i++) { if(disciplinasDoBanco.get(i).getNome().equals(listaDisciplinas.get(i))) { ((JCheckBox)component).setSelected( true ); System.out.println("selecionando as checkboxes"); } else { ((JCheckBox)component).setSelected( false); System.out.println("nã selecionando as checkboxes :("); } } } } }
alguém poderia me ajudar a encontrar o erro…
Ah no console é exibio o seguinte

nã selecionando as checkboxes :( nã selecionando as checkboxes :( nã selecionando as checkboxes :( nã selecionando as checkboxes :( nã selecionando as checkboxes :( nã selecionando as checkboxes :( selecionando as checkboxes ..... selecionando as checkboxes nã selecionando as checkboxes :( java.lang.IndexOutOfBoundsException: Index: 11, Size: 11 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at TelaAlteracaoDadosAcademicos$2.actionPerformed(TelaAlteracaoDadosAcademicos.java:160) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
obrigada pela ajuda

Eu olhei seu foreach, e acabei pro encontrar o possível problema.

Cara, da uma olhada na sua verificação dentro do segundo for:

for(int i=0;i<disciplinasDoBanco.size();i++)   
{   
      if(disciplinasDoBanco.get(i).getNome().equals(listaDisciplinas.get(i)))   
      {   
            ((JCheckBox)component).setSelected( true );   
            System.out.println("selecionando as checkboxes");   
      }   
      else   
      {   
            ((JCheckBox)component).setSelected( false);   
            System.out.println("nã selecionando as checkboxes :(");   
       }   
} 

Ali no:

if(disciplinasDoBanco.get(i).getNome().equals(listaDisciplinas.get(i)))   

Percebe que você usa seu contador [color=red]i[/color] está sendo usado nas duas List ? vc usou na List de classes DAO do seu banco e na List de Strings com as disciplinas, portante você está incrementando simultaneamente e verificando paralelamente, fugindo das oturas verificações, então tente fazer um outro contador só para a List de disciplinas:

int aux = 0;
for(int i=0;i<disciplinasDoBanco.size();i++)   
{   
      for(String disciplina : listaDisciplinas)
     {
           if(disciplinasDoBanco.get(i).getNome().equals(disciplina))   
           {   
                 ((JCheckBox)component).setSelected( true );   
                 System.out.println("selecionando as checkboxes");   
           }   
           else   
           {   
                 ((JCheckBox)component).setSelected( false);   
                 System.out.println("nã selecionando as checkboxes :(");   
            }
     }   
} 

Desse modo você fará a verificação completa de todas as classes de sua List do DAO em conjunto com a List de Strings, sem pular nenhum dado.

Aguardo confirmação,

Att. Guilherme Dio.

Oi guilherme.dio,
fiz com o segundo for como tu disseste e agora esta funcionando!!!
obrigada pela ajuda!!
:smiley: