blz galera, desde já desculpa a ignorância e obrigado pela ajuda!
Eu tenho um frame (frame1) aonde preciso informar o código do meu cliente, certo ?
mas o problema é que o usuário não sabe o código do cliente e precisa pesquisar o código do cliente, então o usuário chama um outro frame(frame2) com todos os clientes listados em um Jtable.
dentro do jtable, no evento keypressed vai armazenar os dados do cliente(codigo e nome) em uma variavel publica que esta dentro do frame1.
Ao pressionar enter no cliente escolhido eu fiz a programação para que armazene os dados do cliente no frame 1 na variavel publica e depois feche o frame 2 (frame de pesquisa)
até aqui blz, o problema é que ao fechar o frame 2 eu preciso que as informações salvas no frame1 nas variaveis publicas precisar ser jogadas no campos ‘codigo do cliente’ e ‘nome do cliente’…dados que foram armazenados atravez do jtable no frame 2.
Alguem pode me ajudar? bem novato em java!
se caso existir alguma outra forma , podem postar tb!
obrigado galera
Vou tentar ajudar.
Da pra voce passar o frame1 via parâmetro no frame2 ex:
Frame1 frame1 = new Frame1();
Frame2 frame2 = new Frame2(frame1);
Construtor do Frame2
Public Class Frame2 extends JDialog{
Frame window
public Frame2(Frame window){
this.window = window;
}
private void fechar(){
windows.setDados();
this.dispose;
}
}
Tentei ser simples.
obs: Não compilei o código. Provavelmente tenha erros. verifique se esta tudo certo;
desculpa ae amigo, se puder explicar melhor agradeço…
tentando aqui pra caramba mas não consigo…
vlw…
flw
Alguem me ajuda ,por favor?
Pelo q entendi vc está inserindo os dados diretamente na variável do frame1 correto? Não faça isso, deixe a variável como private e adicione os métodos get e set conforme sua necessidade e insira os valores das variáveis através destes métodos, no seu caso vc pode atualizar os campos dentro do set da variável, segue exemplo:
// Variável
private Cliente cliente;
// Método para inserir um cliente
public void setCliente (Cliente cliente) {
this.cliente = cliente;
this.atualizarCamposCliente();
}
// Método para atualizar o cliente na tela
private void atualizarCamposCliente(); {
editCodigoCliente.setText(this.cliente.getCodigo());
editNomeCliente.setText(this.cliente.getNome());
}
Procure sobre o padrão Observer, embora ele traga um nível de complexidade que seria desnecessário, vai te ajudar a corrigir a bagunça que está fazendo.
desculpa galera mas não to conseguindo, ja fiz um monte de coisa aqui e nao da certo…
frame 1(onde tenho q alterar o campo codigo) eu coloco isso la no final do frame:
public void metodopai(String txt){
txtcodcliente.setText(txt);
}
frame 2(aonde eu vou pegar as informações pra jogar no frame 1)fiz o seguinte:
[code]private frame1 venda;
public frame2(frame1 pPapai) {
venda = pPapai;
}[/code]
ao fechar o frame 2, eu executo o metodo:
venda.metodopai("1");//jogo oq ele deve setar dentro dos parenteses, mas nada acontece.
[quote=luiswellington]desculpa galera mas não to conseguindo, ja fiz um monte de coisa aqui e nao da certo…
frame 1(onde tenho q alterar o campo codigo) eu coloco isso la no final do frame:
public void metodopai(String txt){
txtcodcliente.setText(txt);
}
frame 2(aonde eu vou pegar as informações pra jogar no frame 1)fiz o seguinte:
[code]private frame1 venda;
public frame2(frame1 pPapai) {
venda = pPapai;
}[/code]
ao fechar o frame 2, eu executo o metodo:
venda.metodopai("1");//jogo oq ele deve setar dentro dos parenteses, mas nada acontece.
[/quote]
A primeira coisa que você precisa entender é que objetos se comunicam por mensagens.
A segunda coisa é que as mensagens estão ligadas aos métodos que os objetos possuem. Eles podem enviar ou receber estas mensagens.
A terceira coisa é que você precisa ter um método que faça o que você quer no frame1.
A quarta coisa é que você precisa, quando estiver ‘fechando’ ou ‘escondendo’ o frame2, enviar a mensagem ao frame1 para que ele execute o método que irá fazer o que você quer.
o metodopai seria oq eu quero fazer , setar um texto no campo codigo do cliente…
mas como eu faria a quarta coisa que vc postou, mandar uma mensagem para o frame 1, como ele verificaria essa mensagem sendo q ele não faz nada quando eu fecho o frame 2…ou seja como eu faria um if para ele verificar essa msg enviado do frame 2…?
desculpa a ignorancia amigo…mas muito obrigado pela sua ajuda …
Não camarada, não desculpo.
Você passou o objeto frame1 para o frame2?
Se sim, você pode chamar qualquer método público do frame1 no frame2.
Como você não consegue fazer isso?
sim eu estou chamando o metodo antes de fechar o frame 2…mas ele nao faz nada no frame 1 …esse o problema, eu fazer executar o metodo dentro do frame 1 e no no frame 2.
calma amigo, eu fiz muita coisa aqui com ajuda da internet por isso estou meio perdido.
fiz oq vc falou :
private Venda_serviços venda;
public Clientes(Venda_serviços pPapai) {
venda = pPapai;
}
//depois antes de fechar o frame clientes, eu chamo o metodopai que esta dentro do frame venda_serviços onde devo alterar o campo codigo do cliente
venda.metodopai("1");
//esse é o metodopai que esta dentro do frame1:
public void metodopai(String txt){
txtcodcliente.setText(txt);
}
galera consegui graças a esse video:
obrigado a todos que ajudaram…