aê pessoal estou criando uma agenda telefônica e gostaria que vcs me ajudassem a inserir os dados dos contatos em uma agenda…
ficaria tipo assim: nome | celular | cidade , e os dados embaixo disso. desde já agradeço, vlw!
Como fazer para os dados dos contatos de uma agenda fiquem inseridos em uma jTable no netBeans
5 Respostas
Como assim?.. Vc quer fazer o cadastro…ou já fez ele?.. ou quer só buscar do banco de dados os registros e lançar dentro da JTable?
isso mesmo, eu quero buscar nos registros e lançar na jTable…e isso com uns 150 contatos no máximo, de acordo com que o usuário for adicionando os contatos, os dados devem aparecer lá na jTable quando ele salvar.
o padrão do netbeans é defaultTableModel,
crei um abstractTableModel para gerar a tabela
e preenche-la com os dados
Bom...quando o usuário clicar no botão salvar e depois de executar a ação do salvar propriamente dito, teoricamente vc faz um select no banco buscando os registros e adiciona registro a registro no tablemodel de usa tabela....
Um exemplo simples de criar um tablemodel..
//Especifica as linhas e colunas da tabela
//sendo que linhas é um String[][] e colunas é String[]
DefaultTableModel dtm = new DefaultTableModel(linhas, colunas) {
@Override //isso para não deixar a sua tabela editável...mas se quiser é só não sobrescrever este método
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
};
//depois adiciona esse model na sua table assim
suaTable.setModel(dtm);
/**
*Adiciona uma linha na tabela
**/
public void addLinha(String[] str) {
dtm.addRow(str);
}
É um exemplo xulo...,as serve pra vc entender o fio da meada
Caso queira uma tabela mais complexa com vários recursos, construa sua propria classe extendendo do JTabel e também sua propria classe TableModel
Bom...quando o usuário clicar no botão salvar e depois de executar a ação do salvar propriamente dito, teoricamente vc faz um select no banco buscando os registros e adiciona registro a registro no tablemodel de usa tabela....Um exemplo simples de criar um tablemodel..
Para adicionar um alinha na sua tabela vc usaria algum método parecido com isso//Especifica as linhas e colunas da tabela //sendo que linhas é um String[][] e colunas é String[] DefaultTableModel dtm = new DefaultTableModel(linhas, colunas) { @Override //isso para não deixar a sua tabela editável...mas se quiser é só não sobrescrever este método public boolean isCellEditable(int rowIndex, int mColIndex) { return false; } }; //depois adiciona esse model na sua table assim suaTable.setModel(dtm);/** *Adiciona uma linha na tabela **/ public void addLinha(String[] str) { dtm.addRow(str); }É um exemplo xulo...,as serve pra vc entender o fio da meada
Caso queira uma tabela mais complexa com vários recursos, construa sua propria classe extendendo do JTabel e também sua propria classe TableModel
[color=red]NOOOOOOOOOOOOOOOOOO!!![/color]
Abstenha-se do DefaultTableModel da sua vida, por favor, hahaha!
Crie o seu próprio modelo de tabelas. Você evita inúmeros casts, evita trabalhar com os famosos I e J para células na tabela, trabalha diretamente com objetos... Enfim, é bem melhor.
Acesse meu link na assinatura para saber melhor sobre como criar o seu próprio TableModel. Agora, tendo o TableModel pronto, você faz assim:
List<Contato> contatos = ContatoDAO.recuperarContatos(); // só um exemplo...
SeuTableModel tablemodelContatos = new SeuTableModel(contatos);
JTable tableContatos = new JTable(tablemodelContatos);
Espero ter ajudado,
fique com Deus! :D