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.
você ja programou alguma coisa? Se sim, poste o código para que todos possam tentar ajudar
B
BrunoKoehler
Segue um trecho do codigo …
privatevoidtblFuncMouseClicked(java.awt.event.MouseEventevt){FuncionarioDAOfuncDAO=newFuncionarioDAO();Funcionariosfunc=newFuncionarios();if(!tblFunc.getRowSelectionAllowed()){JOptionPane.showMessageDialog(null,"Erro ao selecionar dados da tabela!");}else{intcodFunc=Integer.parseInt(tblFunc.getValueAt(tblFunc.getSelectedRow(),0).toString());func.setCodFunc(codFunc);funcDAO.getDados(func);}}
M
markin1
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?
B
BrunoKoehler
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?
M
markin1
ahhh agora entendi ^^ não ta entrando no método? Você ja debugou pra verificar? Eu já fiz algo parecido e funcionou sem problemas
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).