Dúvida sobre campo não listar todos os contatos

4 respostas
Andre_Rosa

Olá a todos, fiz um programa em Java, uma agenda de contatos, na hora que eu clico em pesquisar, sem escrever nada ele era p/ mostrar todos os contatos do BD, mas só mostra o primeiro cadastrado.
.
Segue o código :
.
http://pastebin.com/f18553c00
.
.
Como erro quando eu clico no botão pesquisar aparece assim no build :
.
http://pastebin.com/f7a0d82b1
.
.
Alguém sabe como resolver, e pode me dizer por favor ? Obrigado !

Ah, o código do ContatoDao :

http://pastebin.com/f6351ba40

Detalhe : um erro eu já achei no ContatoDao, onde estava :
.
String sql = "delect * from contato where nome like ? "; Concertei pondo select, mas ainda não lista todos, só o primeiro.

Obrigado a todos.

4 Respostas

aikeda

Cara,

O output no console diz bem qual é o erro: java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
Isso significa que você está tentando adicionar um vetor com mais dimensões do que o esperado.

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3 at java.util.Vector.setElementAt(Vector.java:503) at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:666) at junior.forms.jTAgendaContatos.mostraPesquisa(jTAgendaContatos.java:502)

Que ocorre no momento que ele tenta adicionar um elemento no modelo da tabela:
at java.util.Vector.setElementAt(Vector.java:503)

O seu data model está definido para 3 dimensões: {“Id”,“Nome”,“Endereco”}

DefaultTableModel tmContato = new DefaultTableModel(null, new String[]{"Id", "Nome", "Endereco"});

E você está tentando distraídamente adicionar 4: new String []{null, null, null, null}

...
private void mostraPesquisa(List<Contato> contatos) {
        if (contatos.size() == 0) {
            JOptionPane.showMessageDialog(null, "Nenhum contato cadastrado!" );
        } else {
            String[] linha = new String []{null, null, null, null}; // ERRO AQUI!
          
            
            for (int i = 0; i < contatos.size(); i++) {
                tmContato.addRow(linha);  // EXCEÇÃO LANÇADA AQUI!
                tmContato.setValueAt(contatos.get(i).getId(), i, 0);
                tmContato.setValueAt(contatos.get(i).getNome(), i, 1);
                tmContato.setValueAt(contatos.get(i).getEndereco(), i, 2);
                tmContato.setValueAt(contatos.get(i).getTel(), i, 3);

            }
        }
    }
...
Andre_Rosa

Opa, primeiramente muito obrigado pela ajuda, fiz como você mencionou, mas o erro persiste, segue o código atual :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * jTAgendaContatos.java
 *
 * Created on 03/01/2010, 16:23:09
 */
package junior.forms;

import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import junior.dao.ContatoDao;
import junior.logica.Contato;

/**
 *
 * @author junior
 */
public class jTAgendaContatos extends javax.swing.JFrame {

    DefaultTableModel tmContato = new DefaultTableModel(null, new String[]{"Id", "Nome", "Endereco"});
    List<Contato> contatos;
    ListSelectionModel lsmContato;

    /** Creates new form jTAgendaContatos */
    public jTAgendaContatos() {
        initComponents();
        desabilitaDados();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLId = new javax.swing.JLabel();
        jLNome = new javax.swing.JLabel();
        jLEndereco = new javax.swing.JLabel();
        jLTelefone = new javax.swing.JLabel();
        jLEmail = new javax.swing.JLabel();
        jLSexo = new javax.swing.JLabel();
        jTId = new javax.swing.JTextField();
        jTNome = new javax.swing.JTextField();
        jTEndereco = new javax.swing.JTextField();
        jTTelefone = new javax.swing.JTextField();
        jTEmail = new javax.swing.JTextField();
        jTSexo = new javax.swing.JTextField();
        jBPesquisa = new javax.swing.JButton();
        jTPesquisar = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jBSair = new javax.swing.JButton();
        jBNovo = new javax.swing.JButton();
        jBAlterar = new javax.swing.JButton();
        jBExcluir = new javax.swing.JButton();
        jBSalvar = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMAlterar = new javax.swing.JMenuItem();
        jMExcluir = new javax.swing.JMenuItem();
        jMSalvar = new javax.swing.JMenuItem();
        jMSair = new javax.swing.JMenuItem();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenu3 = new javax.swing.JMenu();
        jMAjuda = new javax.swing.JMenu();
        jMFalha = new javax.swing.JMenuItem();
        jMCreditos = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Sisteminha :)");

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Dados do contato"));

        jLId.setText("ID:");

        jLNome.setText("Nome:");

        jLEndereco.setText("Endereço:");

        jLTelefone.setText("Telefone:");

        jLEmail.setText("E-mail:");

        jLSexo.setText("Sexo:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLNome, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLId, javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jLEndereco)
                        .addGap(12, 12, 12)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTEndereco, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE)
                            .addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTNome, javax.swing.GroupLayout.PREFERRED_SIZE, 273, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLSexo)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLTelefone)
                            .addComponent(jLEmail))
                        .addGap(12, 12, 12)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTTelefone, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE)
                            .addComponent(jTSexo, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTEmail, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE))))
                .addGap(31, 31, 31))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLId)
                            .addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLNome)
                            .addComponent(jTNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLEndereco)
                            .addComponent(jTEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLTelefone)
                            .addComponent(jTTelefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLEmail)
                            .addComponent(jTEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLSexo)
                            .addComponent(jTSexo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(44, Short.MAX_VALUE))
        );

        jBPesquisa.setText("Pesquisar");
        jBPesquisa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBPesquisaActionPerformed(evt);
            }
        });

        jTable1.setModel(tmContato);
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 206, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1, Short.MAX_VALUE)
        );

        jBSair.setText("SAIR");
        jBSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBSairActionPerformed(evt);
            }
        });

        jBNovo.setText("NOVO");
        jBNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBNovoActionPerformed(evt);
            }
        });

        jBAlterar.setText("ALTERAR");

        jBExcluir.setText("EXCLUIR");

        jBSalvar.setText("SALVAR");
        jBSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBSalvarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGap(200, 200, 200)
                .addComponent(jBNovo)
                .addGap(18, 18, 18)
                .addComponent(jBAlterar)
                .addGap(18, 18, 18)
                .addComponent(jBExcluir)
                .addGap(18, 18, 18)
                .addComponent(jBSalvar)
                .addGap(18, 18, 18)
                .addComponent(jBSair)
                .addContainerGap(29, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jBSair)
                    .addComponent(jBNovo)
                    .addComponent(jBAlterar)
                    .addComponent(jBExcluir)
                    .addComponent(jBSalvar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jMenu1.setText("Arquivo");
        jMenu1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenu1ActionPerformed(evt);
            }
        });

        jMAlterar.setText("Novo");
        jMAlterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMAlterarActionPerformed(evt);
            }
        });
        jMenu1.add(jMAlterar);

        jMExcluir.setText("Alterar");
        jMenu1.add(jMExcluir);

        jMSalvar.setText("Excluir");
        jMenu1.add(jMSalvar);

        jMSair.setText("Salvar");
        jMenu1.add(jMSair);

        jMenuItem8.setText("Sair");
        jMenu1.add(jMenuItem8);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Editar");
        jMenuBar1.add(jMenu2);

        jMenu3.setText("Ferramentas");
        jMenuBar1.add(jMenu3);

        jMAjuda.setText("Ajuda");

        jMFalha.setText("Tópicos de ajuda");
        jMAjuda.add(jMFalha);

        jMCreditos.setText("Reportar falha");
        jMAjuda.add(jMCreditos);

        jMenuItem4.setText("Créditos");
        jMAjuda.add(jMenuItem4);

        jMenuBar1.add(jMAjuda);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(595, 595, 595)
                                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 801, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                .addComponent(jTPesquisar, javax.swing.GroupLayout.DEFAULT_SIZE, 715, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jBPesquisa))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(37, 37, 37)
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(57, 57, 57)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jBPesquisa)
                    .addComponent(jTPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 279, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(22, 22, 22))
        );

        pack();
    }// </editor-fold>                        

    private void jBNovoActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        habilitaDados();
        jTNome.setText("");
        jTEmail.setText("");
        jTEndereco.setText("");
        jTSexo.setText("");
        jTTelefone.setText("");


    }                                      

    private void jMAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        jTNome.setText("");
        jTEmail.setText("");
        jTEndereco.setText("");
        jTSexo.setText("");
        jTTelefone.setText("");
    }                                         

    public void desabilitaDados() {
        jTId.setEditable(false);
        jTNome.setEditable(false);
        jTEndereco.setEditable(false);
        jTEmail.setEditable(false);
        jTSexo.setEditable(false);
        jTTelefone.setEditable(false);

    }

    public void habilitaDados() {
        jTNome.setEditable(true);
        jTEndereco.setEditable(true);
        jTEmail.setEditable(true);
        jTSexo.setEditable(true);
        jTTelefone.setEditable(true);

    }

    public boolean verificaDados() {
        if (!jTNome.getText().equals("") && !jTEndereco.getText().equals("")) { //Campos obrigatórios

            return true;
        } else {
            JOptionPane.showMessageDialog(null, "Campos NOME ou ENDEREÇO não preenchidos!");
            return false;
        }

    }

    private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if (verificaDados()) {
            cadastro();
            desabilitaDados();
        }
    }                                        

    public void listarContatos() throws SQLException {
        ContatoDao dao = new ContatoDao();
        contatos = dao.getLista("%" + jTPesquisar.getText() + "%");
        mostraPesquisa(contatos);

    }

    public void cadastro() {
        try {
            // TODO add your handling code here:
            Contato c1 = new Contato();
            c1.setNome(jTNome.getText());
            c1.setTel(jTTelefone.getText());
            c1.setEndereco(jTEndereco.getText());
            c1.setEmail(jTEmail.getText());
            c1.setSexo(jTSexo.getText());
            ContatoDao dao = new ContatoDao();
            dao.adiociona(c1);

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Oops!Houve problemas... ");


        }

    }
    private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
    }                                      

    private void jBPesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try {
            // TODO add your handling code here:
            listarContatos();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Houve problemas no campo de pesquisa!");
        }

    }                                          

    private void jBSairActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        System.exit(0);
    }                                      

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new jTAgendaContatos().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jBAlterar;
    private javax.swing.JButton jBExcluir;
    private javax.swing.JButton jBNovo;
    private javax.swing.JButton jBPesquisa;
    private javax.swing.JButton jBSair;
    private javax.swing.JButton jBSalvar;
    private javax.swing.JLabel jLEmail;
    private javax.swing.JLabel jLEndereco;
    private javax.swing.JLabel jLId;
    private javax.swing.JLabel jLNome;
    private javax.swing.JLabel jLSexo;
    private javax.swing.JLabel jLTelefone;
    private javax.swing.JMenu jMAjuda;
    private javax.swing.JMenuItem jMAlterar;
    private javax.swing.JMenuItem jMCreditos;
    private javax.swing.JMenuItem jMExcluir;
    private javax.swing.JMenuItem jMFalha;
    private javax.swing.JMenuItem jMSair;
    private javax.swing.JMenuItem jMSalvar;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTEmail;
    private javax.swing.JTextField jTEndereco;
    private javax.swing.JTextField jTId;
    private javax.swing.JTextField jTNome;
    private javax.swing.JTextField jTPesquisar;
    private javax.swing.JTextField jTSexo;
    private javax.swing.JTextField jTTelefone;
    private javax.swing.JTable jTable1;
    // End of variables declaration                   

    private void mostraPesquisa(List<Contato> contatos) {
        if (contatos.size() == 0) {
            JOptionPane.showMessageDialog(null, "Nenhum contato cadastrado!" );
        } else {
            String[] linha = new String []{null, null, null};
          
            
            for (int i = 0; i < contatos.size(); i++) {
                tmContato.addRow(linha);
                tmContato.setValueAt(contatos.get(i).getId(), i, 0);
                tmContato.setValueAt(contatos.get(i).getNome(), i, 1);
                tmContato.setValueAt(contatos.get(i).getEndereco(), i, 2);
                tmContato.setValueAt(contatos.get(i).getTel(), i, 3);

            }
        }
    }
}

O erro :

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3 at java.util.Vector.setElementAt(Vector.java:503) at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:666) at junior.forms.jTAgendaContatos.mostraPesquisa(jTAgendaContatos.java:502) at junior.forms.jTAgendaContatos.listarContatos(jTAgendaContatos.java:396) at junior.forms.jTAgendaContatos.jBPesquisaActionPerformed(jTAgendaContatos.java:426) at junior.forms.jTAgendaContatos.access$000(jTAgendaContatos.java:27) at junior.forms.jTAgendaContatos$1.actionPerformed(jTAgendaContatos.java:168) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.Component.processMouseEvent(Component.java:6108) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:5873) at java.awt.Container.processEvent(Container.java:2105) at java.awt.Component.dispatchEventImpl(Component.java:4469) at java.awt.Container.dispatchEventImpl(Container.java:2163) at java.awt.Component.dispatchEvent(Component.java:4295) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055) at java.awt.Container.dispatchEventImpl(Container.java:2149) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4295) at java.awt.EventQueue.dispatchEvent(EventQueue.java:604) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138) BUILD SUCCESSFUL (total time: 11 seconds)

PS : O erro só aparece quando eu clico no botão de pesquisa.

Obrigado !

aikeda

Tá, um erro você já corrigiu, só que você esqueceu de retirar a linha que ele tenta adicionar a 4a. dimensão no vetor.
Você não definiu nenhuma coluna para o "telefone". Dá uma olhada no código abaixo, na linha 14.

...
private void mostraPesquisa(List<Contato> contatos) {
        if (contatos.size() == 0) {
            JOptionPane.showMessageDialog(null, "Nenhum contato cadastrado!" );
        } else {
            String[] linha = new String []{null, null, null}; // OK
          
            
            for (int i = 0; i < contatos.size(); i++) {
                tmContato.addRow(linha);  // OK
                tmContato.setValueAt(contatos.get(i).getId(), i, 0);
                tmContato.setValueAt(contatos.get(i).getNome(), i, 1);
                tmContato.setValueAt(contatos.get(i).getEndereco(), i, 2);
                tmContato.setValueAt(contatos.get(i).getTel(), i, 3); // O ERRO ESTÁ AQUI! Retire essa linha!

            }
        }
    }
...
Andre_Rosa

Opa, era isso mesmo. É bom encontrar pessoas como você nos fóruns, que disponibilizam o conhecimento para ajudar os outros. Obrigado pelo auxilio.

Criado 22 de janeiro de 2010
Ultima resposta 22 de jan. de 2010
Respostas 4
Participantes 2