Como trocar informações entre jFrames

7 respostas
L

Meu problema eh o seguinte…

Fiz um jFrame para cadastrar cliente, um outro para vendas e outro para pesquisar o clientes…

minha duvida eh a seguinte como fazer para trocar informações entre estes jFrames…

tipo:

quando eu chamar o jFrame de pesquisa a partir do cadastro quero que ele me retorne o cliente e ja preencha os campos nome, cpf, endereco do cliente…
ja se eu chamar pesquisa a partir de vendas quero somente o cpf… como fazer isso!!!

7 Respostas

fabim

Crie um argumento no construtor da sua janela que recebe um objeto do tipo que ela representa, e depois preencha os componentes
com os atributos desse objeto.

Ex:

public JFramePesquisa( Cliente cliente) {

   initComponentes(); // inicializa os componentes visuais

   this.txtNome = cliente.getNome();
   this.txtTelefone = cliente.getTelefone();

}

Mas isso é ruim. Ao invés de pensar na comunicação entre Janelas, tente pensar na comunicação entre objetos.
Procure aqui no forum sobre MVC

L

sim sim… mas tipo

nao tem como a jFrame retornar um cliente para o cadastro poder utiliza-lo?!

fabim

Ué… pq nao?

no JFramePesquisa…

public Cliente getCliente() {

   return this.cliente;

}

assumindo que vc tem uma variavel de instancia “cliente” no seu frame de pesquisa

L

eu queria que ele retornasse igual aqueles JOptionPane…

tipo…
vc coloca JOptionPane.showConfirmDialog…

dai vc clica lah num botao e ele retorna um valor… com um jFrame ou outra janela nao teria como eu fazer isso e retornar o cliente que eu escolhi?

fabim

é como eu te falei… se sua janela tem um objeto cliente, vc cria o método pra retornar…
suponhamos que a sua tela de pesquisa seja um JDialog ( fica melhor que frame ):

JDialogPesquisaCliente dialogPesquisa = new JDialogPesquisaCleinte();
dialog.setVisible( true );

// Se seu Dialog estiver como modal (setModal(true)), a execução pára aqui e so continua qdo o Dialog fechar
// Qdo o dialog fechar, a tela vai estar invisivel mas o objeto dialogPesquisa continua la e tendo o objeto Cliente;

Cliente cliente = dialogPesquisa.getCliente();

// faz o que quiser com cliente

L

ah entendi… entao mudarei para um jDialog…

valeu

L

consegui…

criei um metodo estatico que retorna um cliente…

tipo…

quando vc chama, esse metodo ele cria um jDialog e retorna um Cliente…

fiz assim…

public static Cliente pesquisar(JFrame frame) {
    JDPesquisar pesquisar = new JDPesquisar(frame,true);
    pesquisar.setVisible(true);
    return cliente; // q seria um atributo estatico
}

isto eh uma maneira correta ou nao eh recomendado

Criado 5 de outubro de 2007
Ultima resposta 5 de out. de 2007
Respostas 7
Participantes 2