Pesquisando gerando erro?

Pessoal, tenho 2 classes (Livro e Pessoa) e na no tela de Emprestimo, coloquei todos os livros e pessoas em dois ComboBox.

A classe cadastro só tem os atributos livro do tipo Livro e pessoa do tipo Pessoa. No cadastro funciona, mas na pesquisa da erro

private void pesquisar()
{
         ResultSet rs = EmprestimoDAO.selecionarEmprestimo(txtCod.getText());
         try{
             while(rs.next()){                
                 cmbLivros.setSelectedItem(livros.get(Integer.parseInt(rs.getString("ID_LIVRO"))).getTitulo());
                 cmbPessoas.setSelectedItem(pessoas.get(Integer.parseInt(rs.getString("ID_PESSOA"))).getNome());
             }
         }catch(Exception e){
             JOptionPane.showMessageDialog(rootPane, e);
         }
}

E o erro foi este:

java.lang.IndexOutOfBoundsException: Index: 6, Size: 6

Creio que o problema não ocorra neste trecho que você colocou.
A mensagem de erro java.lang.IndexOutOfBoundsException: Index: 6, Size: 6 se refere a tentativa de ler uma eventual posição 6 em um array em que a última posição tem índice 5.
Algo como

int vet[] = {1,2,3,4,5,6};//vetor com seis posições, com índices de 0 a 5
for(int i = 1; i<= vet,length; i++){
    int x = vet[i];//aqui ocorrerá o mesmo erro quando i atingir o valor 6
}
1 curtida

O que o erro quis dizer eu entendi, mas eu não consigo acha-lo. Pq eu não fiz nenhuma forma de Array desta maneira…

A questão é que o stack trace da ide mostra mais que apenas esta linha, o ideal seria colocar toda a saída do erro, para tentarmos ajudar.

1 curtida

java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at View.frmEmprestimo.pesquisar(frmEmprestimo.java:335)
at View.frmEmprestimo.btnPesquisarActionPerformed(frmEmprestimo.java:323)
at View.frmEmprestimo.access$000(frmEmprestimo.java:13)
at View.frmEmprestimo$1.actionPerformed(frmEmprestimo.java:70)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)Texto pré-formatado

O que tem aqui View.frmEmprestimo.pesquisar(frmEmprestimo.java:335) em frmEmprestimo, linha 335?

private void pesquisar()
{
   ResultSet rs = EmprestimoDAO.selecionarEmprestimo(txtCod.getText());
   try{
       while(rs.next()){                

           cmbLivros
            .setSelectedItem(livros.get(Integer.parseInt(rs.getString("ID_LIVRO")))
            .getTitulo());

           cmbPessoas
            .setSelectedItem(pessoas.get(Integer.parseInt(rs.getString("ID_PESSOA")))
            .getNome());

       }
   }catch(Exception e){
       e.printStackTrace();
   }
}
1 curtida