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.