Bom Dia Pessoal,
Eu tenho uma interface de cadastro de funcionarios, com varios componetes jTextField para preenchimento (exemplo, nome, rg, cpf, etc), que insere no banco de dados e mostra na jTable. Até aí tudo bem, acontece que eu gostaria de vincular um evento (MouseClicked) que no momento em que o usuario clicar na Row da jTable, ele pega os dados dessa linha e coloque nos componentes para serem “Alterados”, ou seja, o evento vai me trazer todos os dados da linha que eu selecionei.
Eu não estou conseguindo, tentei pegar o Codigo da linha selecionada atraves do método jTable.getValueAt(row,col), porem não deu certo porque o evento MouseClicked não está executando.
Alguem poderia me ajudar.
Desde já agradeço.
você ja programou alguma coisa? Se sim, poste o código para que todos possam tentar ajudar
Segue um trecho do codigo …
private void tblFuncMouseClicked(java.awt.event.MouseEvent evt) {
FuncionarioDAO funcDAO = new FuncionarioDAO();
Funcionarios func = new Funcionarios();
if (!tblFunc.getRowSelectionAllowed()) {
JOptionPane.showMessageDialog(null, "Erro ao selecionar dados da tabela!");
} else {
int codFunc = Integer.parseInt(tblFunc.getValueAt(tblFunc.getSelectedRow(), 0).toString());
func.setCodFunc(codFunc);
funcDAO.getDados(func);
}
}
Bom pelo que eu entendi vc ja tá fazendo a busca o problema é que nao ta fazendo atribuição dos valores nos campos.
Ali na linha:
funcDAO.getDados(func)
acredito que seja um método de busca, mas você tá fazendo a busca passando como parâmetro a classe bean, ou modelo nao sei como vc à chama. Enfim isso não importa vai da modelagem de cada um.
Mas pelo que eu entendo essa classe deveria retornar um objeto do tipo Funcionarios então você deveria fazer assim:
func = funcDAO.getDados(func);
Feito isso você atribui aos campos o valor retornado do método. Por exemplo:
txtNome.setText(func.getNome().trim());
E assim por diante.
Entendeu?
Até aí entendi, mas não sei se o metodo getValueAt vai me retornar o que quero, e não consigo simular porque o evento não está executando. O que eu quero é o Codigo do Funcionario que eu selecionei. Entendeu?
Porque na questão de retornar os valores para os jTextFields é tranquilo.
Será que tem outro evento que poderia fazer o mesmo?
ahhh agora entendi ^^ não ta entrando no método? Você ja debugou pra verificar? Eu já fiz algo parecido e funcionou sem problemas
private void tblMouseClicked(java.awt.event.MouseEvent evt) {
try {
int codigo = Integer.parseInt(jTable.getModel().getValueAt(jTable.getSelectedRow(), 0).toString());
if (codigo > 0) {
try {
classe.setID(codigo);
inserirDadosNosComponentes(classe);
} catch (Exception e) {
e.PrintStackTrace();
}
}
} catch (Exception e) {
e.PrintStackTrace();
}
}
ae pessoal, só para atualizar o Tópico, caso alguem precise, tá aí.
No evento MouseClicked ele vai retornar nos componentes do seu JFrame,
todos os dados da linha selecionada.
O método inserirDadosNosComponentes(classe) é responsavel por consultar no banco os dados do registro
selecionado, e inserir nos componentes.(jtextfield, jcombobox, etc).
é isso ae …
t+
1 curtida