Erro esquisito: java.lang.IndexOutOfBoundsException

2 respostas
marcusluiz83

Boa noite!

Estou com um problema esquisito, onde só consigo pegar todos os dados da primeira linha de uma pesquisa. Se eu clicar na segunda linha dá o erro indicado no assunto.

O código em minha tabela:

tbExamesMarcados = new javax.swing.JTable();
tbExamesMarcados.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lsmMarcados = tbExamesMarcados.getSelectionModel();
lsmExames = tbExamesMarcados.getSelectionModel();
lsmMarcados.addListSelectionListener(new ListSelectionListener(){
		public void valueChanged(ListSelectionEvent e){
			if(! e.getValueIsAdjusting()){
				LinhaMarcados(tbExamesMarcados);
				LinhaExames(tbExamesMarcados);
			}
		}
});
tbExamesMarcados.setModel(tmMarcados);

O erro:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.RangeCheck(ArrayList.java:547)
        at java.util.ArrayList.get(ArrayList.java:322)
        at br.com.larasoft.forms.ConsultaExames.LinhaExames(ConsultaExames.java:470)
        at br.com.larasoft.forms.ConsultaExames.access$200(ConsultaExames.java:36)
        at br.com.larasoft.forms.ConsultaExames$1.valueChanged(ConsultaExames.java:100)

A linha 470:

private void LinhaExames(JTable tabelaExame) {
        if (tabelaExame.getSelectedRow() != -1) {
            tfRealizados.setText(String.valueOf(exames.get(tabelaExame.getSelectedRow()).getConfirmados())); // Esta é linha 470
        }
    }

Qual correção devo fazer?

Agradeço pela ajuda!

2 Respostas

jpjcjbr

Boa noite,

Provavelmente a chamada “exames.get” deve estar recebendo um valor de indice inválido:

  1. verifique o retorno da chamada “tabelaExame.getSelectedRow”
  2. verifique se a lista de exames possui o indice especificado no retorno do item 1)

Espero ter ajudado.

Abs

gRoOve

Tente encontrar o erro examinado a mensagem. Você está tentando acessar um índice de array - endereço de memória - inválido.

Criado 31 de janeiro de 2011
Ultima resposta 31 de jan. de 2011
Respostas 2
Participantes 3