Boa tarde gente, gostaria de pedir ajuda urgentemente a vocês, pois não tenho mais a quem recorrer.
Tenho 2 formulários. sendo que o FORM2 possui uma tabela.
Já consigo pegar os dados que quero: código e nome, a partir do mouseClick da tabela, pois peguei a linha e gerei um objeto. Consegui visualizar os dados que quero a partir desse objeto(com o println mesmo). Até aí tudo bem.
No Form 1, criei um método para pegar esse objeto do Form2, e a partir daí preenche os campos do próprio formulário.
public void preencheCliente(String nome, int cod) {
jTextFieldCliente.setText(nome);
jTextFieldCodCliente.setText(String.valueOf(cod));
}
A questão é: No Form 2 tenho uma instancia do Form1 da seguinte maneira:
private Form1 objForm1;
E nesse mesmo Form2 chamo o método do Form1:
objForm1.preencheCliente(obj.nome, obj.cod);
Bom, assim não está dando certo, acho que é a instancia do Form1 que estou fazendo. Se puderem me ajudar agradeço muitissimo, pois há exatamente 2 semanas que tento fazer isso
e ninguem consegue me informar.
Utilize das tags code para postar código, fica complexo analisar algo sem isso.
Qual é exatamente a sua dúvida? Desculpe, não há compreendi corretamente.
E por fim, poste uma parte maior de código, de preferência o corpo do método que chama e é invocado!
Bom gente, me desculpem.
Estou fazendo um programa de Locadora. Então segue parte do projeto:
Tenho dois JFrames. O primeiro JFrame (FormLocacao) possui alguns campos como Nome do Cliente, Código do Cliente, Nome do Filme e Código do Filme.
Tenho Botões de Busca Por Nome que chamam o segundo JFrame (DialogConsultaNomeCliente).
Esse possui um campo texto para digitar um nome do cliente por exemplo. Dessa forma, consigo buscar e se eu digitar a letra ‘a’ ele lista todos os nomes que possuem a letra ‘a’ no nome e exibe em um jXTable (jXTableCliente).
Então, fiz um método para a partir de um clique em uma linha da tabela, buscar no banco e retornar um objeto com os dados do cliente, isso a partir do código.
Até aí tudo bem.
//JFrame (DialogConsultaNomeCliente)
private FormLocacao objLocacao; //Instancia do FormLocacao
private void jXTableClienteMouseClicked(java.awt.event.MouseEvent evt) {
int row = jXTableCliente.getSelectedRow();
Object obj = jXTableCliente.getModel().getValueAt(row, 0);
try {
String nome = (InterfacePDL.objBanco.consultaClienteCod(Integer.parseInt(obj.toString())).getNome());
retornaConsulta(nome, obj);
} catch (Exception ex) {
Logger.getLogger(DialogNomeCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void retornaConsulta(String nome, Object obj) throws Exception {
try {
objLocacao.preencheCliente(nome, obj.toString());
//Tentei imprimir no console pra teste e imprime normalmente os dados.
System.out.println(nome);
System.out.println(obj.toString());
} catch (Exception ex) {
Logger.getLogger(DialogNomeCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
Agora aqui está o FormLocacao
public void preencheCliente(String nome, String cod) {
jTextFieldCliente.setText(nome);
jTextFieldCodCliente.setText(cod);
}
O fato é que quando eu clicar na linha da jXTableCliente(Busca por nome), esses campos do FormLocacao devem se preencher.
Novamente peço desculpas por não estruturar minha pergunta. se alguém puder me ajudar ficarei grato pra sempre.
Swing é um ponto fraco meu, pois trabalhei muito com WEB.
Mas assim, se você instanciar o seu outro Form e chamar um(ns) método(s) especifico dele e passar o Objeto de resultado da consulta ao banco, ele não apresenta as informações em tela como você queria?
É chamar essa instancia e os respectivos métodos dentro do seu Listener.
Abraços.