Pessoal,
Tenho uma Jtable com o seguinte código pós-inicialização:
this.jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lsmcontato = this.jTable1.getSelectionModel();
lsmcontato.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e){
if (! e.getValueIsAdjusting()){
jTableLinhaSelecionada(jTable1);}}
});
[code] private void jTableLinhaSelecionada(JTable tabela) {
if (this.jTable1.getSelectedRow() != -1) {
this.jTextFieldID.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getId()));
this.jTextNome.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getNome()));
this.jTextCpf.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getCpf()));
this.jTextIEst.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getiEstado()));
this.jTextContato.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getContato()));
this.jTextLogradouro.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getLogradouro()));
this.jTextNumero.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getNumero()));
this.jTextCompl.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getComplemento()));
this.jTextBairro.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getBairro()));
this.jTextCep.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getCep()));
this.jTextCidade.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getCidade()));
this.jTextUf.setText(String.valueOf(contatos.get(tabela.getSelectedRow()).getUf()));
} else {
this.jTextNome.setText("");
this.jTextCpf.setText("");
this.jTextIEst.setText("");
this.jTextContato.setText("");
this.jTextLogradouro.setText("");
this.jTextNumero.setText("");
this.jTextCompl.setText("");
this.jTextBairro.setText("");
this.jTextCep.setText("");
this.jTextCidade.setText("");
this.jTextUf.setText("");
}
}
[/code]
Bom tenho 2 Jtables uma lista os Clientes e a outra é para listar os contatos(Telefones) que vem de uma outra tabela relacionada.
A idéia é quando eu clicar em uma linha da Jtable ( clientes ) ela executar um outro método para preencher a Jtable (contatos) com os telefones:
porém, não sei em qual evento ou método coloco esse listarTelefones.
[code] public void listarTelefones() throws SQLException {
ManipulaBD cnn = new ManipulaBD();
telefones = cnn.getListaTelefone("%" + this.jTextFieldID.getText());
mostraTelefones(telefones);
}
private void mostraTelefones(List<Clientes> telefones) {
while (tmTelefones.getRowCount() > 0) {
tmTelefones.removeRow(0);
}
if (telefones.size() == 0) {
JOptionPane.showMessageDialog(null, "Nenhum telefone cadastrado");
} else {
// cria vetor
String[] linha = new String[]{null, null, null};
for (int i = 0; i < telefones.size(); i++) {
tmTelefones.addRow(linha);
tmTelefones.setValueAt(telefones.get(i).getId(), i, 0);
tmTelefones.setValueAt(telefones.get(i).getDDD(), i, 1);
tmTelefones.setValueAt(telefones.get(i).getTelefone(), i, 2);
}
}
}
[/code]