Caros amigos, estou com um pequeno probleminha e gostaria que vocês me ajudassem. Criei uma janela de pesquisa utilizando uma JTable e, ao fazer a pesquisa através de uma textfield mostra-se na JTable o resultado. Porém agora quero, por exemplo, clicar 2 vezes em uma das respostas na JTable e carregar seus dados em outra janela. Se não for possível gostaria de ao menos selecionar uma das opções da JTable e clicar em um botão e carregar todos os seus dados em outra janela.
Grato pela atenção.
Marck
Julho 6, 2009, 9:47am
#2
Bom dia!
É possível sim!
Você já fez alguma coisa? Se já fez, posta ai p gente dar uma olhada!
public void pesquisa()
{
jtablePesq.getColumnModel().getColumn(0).setPreferredWidth(40);
jtablePesq.getColumnModel().getColumn(1).setPreferredWidth(100);
jtablePesq.getColumnModel().getColumn(2).setPreferredWidth(40);
DefaultTableModel tabela = (DefaultTableModel)jtablePesq.getModel();
tabela.setNumRows(0);
try
{
con.resultset.first();
int tamanho = tfNome.getText().length();
while (con.resultset.next())
{
String pesquisa = con.resultset.getString("descricao").substring(0,(tamanho_pesquisa));
if (pesquisa.equals(tfNome.getText()))
tabela.addRow(new Object [] {con.resultset.getString("Codigo")});
}
con.resultset.first();
}
catch (SQLException erro){
JOptionPane.showMessageDialog(null,"Erro);
}
}
Uma dica NÃO use DefaultTableModel implemente o seu TableModel.
Motivos (Copiado do ViniGodoy):
Consome o dobro de espaço em memória, uma vez que os dados do seu banco são efetivamente copiados para o modelo;
A necessidade de copiar dados também torna a carga dos dados mais lenta;
Deixa o código mais rebuscado desnecessariamente;
Exige casts, o que torna o código inseguro;
Trabalha com valores, e não com objetos. Num model próprio, você pode ter um get() que retorna diretamente o objeto de sua classe;
Não permite reuso.
Ou então se algum pronto como este que fiz para trabalhar com Objetos.
Ou então esse implementado pelo ViniGodoy.
http://www.guj.com.br/posts/list/100793.java
E no seu caso talvez voce precise de uma tela de consulta como a que fiz aqui (Usa o ObjectTableModel).