Erro: setSelectedIndex: 2 out of bounds

ola pessoal, gostaria da ajuda de vcs por favor

oq indica este erro?

Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: setSelectedIndex: 2 out of bounds

acontece isso, quando eu seleciono a 3 linha da minha tabela

código:

private void selecionaContratos(String id_obra){ for (int i = 0; i < contratos.size(); i++){ if (contratos.get(i).getObra() == id_obra){ cbObra.setSelectedIndex(i); return; } } }

Se estás a comparar Strings deves usar equals e não ==

é verdade! nao me atentei a isso
engraçado que o netbeans nao alertou nada… geralmente ele alerta! isso pq baixei a nova versao

resolvido:

if (contratos.get(i).getObra().equals(id_obra))

O Netbeans nao acusou erro pq comparar variaveis String com == é valido.
A questao eh que dessa forma, o que ele compara sao os objetos (ou o endereco
de memoria deles), e nao o seu valor…

=]

ixi, tinha funcionado neh

mas ai fui acrescenter mais um registro e voltou o erro… nao entendi pq

setSelectedIndex: 4 out of bounds

oq pode estar acontecendo?

Entao brow,

Acho que o problema esta na linha

cbObra.setSelectedIndex(i);

Acho que este componente nao tem 4 linhas (ou registros)

=]

existem 7 linhas e 7 registros

todas que eu passo da certo, inclusive a ultima

mas o registro que esta na linha 5 da este erro, ou se eu cadastrar este mesmo item ele vai aparecer em outra posicao, mas vai dar o mesmo erro… ele é diferente dos outros

ex: todos ai sao codigo 002 e o unico que é o 003 da este erro

Fala Brow

E como vc ta preenchendo ele?

preenchendo oq? o combobox?

cara…ta mto esquisito isso

eu mudei o for pra este jeito

for (int i = 0; i < cbObra.getItemCount(); i++){

ai ele nao lança erro, mas mostra os itens do combobox trocado

agora ele mostra o 003 no lugar do 002

to entendendo mais nada