Jogar dados do BD em um JTable

7 respostas
M

Olá pessoal, estou criando uma agenda telefonica, e na minha tela principal, eu tenho vários botões, cada um reprensantando uma letra, e um botão que lista todas as letras, bom, eu estou com dificuldade em pegar os dados do banco e jogar na JTable, e também para filtrar os dados(caso a pessoa clique na letra “A”, mostrar todos os nomes com que começam com a letra “A”). Segue abaixo o meu código:

public Principal() {
        initComponents();
        setLocationRelativeTo(null);
            
        NCadContato ngcContato = new NCadContato();
        List<Contato> listaContatos = new LinkedList<Contato>();
        try {
            listaContatos = ngcContato.listar();
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        }
         int i = 0;
            String [][] dados = new String[listaContatos.size()][9];
            while (i < listaContatos.size()){
                    dados[i][0] = listaContatos.get(i).getNome();
                    dados[i][1] = listaContatos.get(i).getTelefone();
                    dados[i][2] = listaContatos.get(i).getCelular();
                    dados[i][3] = listaContatos.get(i).getEndereco();
                    dados[i][4] = listaContatos.get(i).getBairro();
                    dados[i][5] = listaContatos.get(i).getCidade();
                    dados[i][6] = listaContatos.get(i).getDatanasc();
                    dados[i][7] = listaContatos.get(i).getEmail();
                    dados[i][8] = listaContatos.get(i).getObservacao();
                    i++;
            }
            String[] colunas = new String []{"Nome","Telefone","Celular","Endereço","Bairro","Cidade","DataNasc","Email","Observação"};
            DefaultTableModel modelo = new DefaultTableModel(dados, colunas); 
            tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            tabela.setModel(modelo);
            TableColumn column = null;
            for ( i = 0; i < 9; i++) {
            column = tabela.getColumnModel().getColumn(i);
             if (i == 0) {
               column.setPreferredWidth(350);
              } else if (i == 1) {
               column.setPreferredWidth(100);
               } else if (i == 2) {
                column.setPreferredWidth(100);
                } else if(i==3) {
                 column.setPreferredWidth(250);
                  }
                else if(i==4){
                  column.setPreferredWidth(150);
                }else if(i==5){
                  column.setPreferredWidth(150);
                }else if(i==7){
                  column.setPreferredWidth(300);
                }else if(i==8){
                  column.setPreferredWidth(400);
                }
            }
        
                
 
    }

Bom, neste código eu defini as colunas do meu JTable.

private void btnAllActionPerformed(java.awt.event.ActionEvent evt) {                                       
          // addRow(listarcontatos());
       
        
    }

E aqui meu botão para listar todos os nomes, lembrando que na camada de negócio tenho um método que retorna uma lista com todos os contatos do banco, mas mesmo assim nao sei como listar no JTable.

7 Respostas

lina

Oi,

private void btnAllActionPerformed(java.awt.event.ActionEvent evt) {                                       
          modelo.addRow(listarcontatos());
       
        
    }

Não resolve?

Tchauzin!

M

Como faço para chamar o modelo que está no método construtor? :oops:

lina

Oi,

Defina ele como global e não local…

Tchauzin!

Marky.Vasconcelos
ContatoTableModel modelo = (ContatoTableModel) jTable.getTableModel();
modelo.addAll(listarContatos());
lina

Marky.Vasconcelos:
ContatoTableModel modelo = (ContatoTableModel) jTable.getTableModel(); modelo.addAll(listarContatos());

Oi,

É… tem esse jeito também!

Tchauzin!

Marky.Vasconcelos

lina:
Marky.Vasconcelos:
ContatoTableModel modelo = (ContatoTableModel) jTable.getTableModel(); modelo.addAll(listarContatos());

Oi,

É… tem esse jeito também!

Tchauzin!

O melhor jeito :wink:

lina

Marky.Vasconcelos:
lina:
Marky.Vasconcelos:
ContatoTableModel modelo = (ContatoTableModel) jTable.getTableModel(); modelo.addAll(listarContatos());

Oi,

É… tem esse jeito também!

Tchauzin!

O melhor jeito ;)

Oi,

Tá… é mesmo!

Só um detalhe… ele esta usando uma JTable comum… então seria: tabela.getModel();

:twisted:

Tchauzin!

Criado 14 de junho de 2011
Ultima resposta 14 de jun. de 2011
Respostas 7
Participantes 3