[RESOLVIDO]pegar dados

12 respostas
L

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

12 Respostas

FabioNoth

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;

L

desculpa ae amigo, se puder explicar melhor agradeço…

tentando aqui pra caramba mas não consigo…

vlw…

flw

L

Alguem me ajuda ,por favor?

fabiocortolan

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());
}
drsmachado

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.

L

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:
private frame1 venda;

public frame2(frame1 pPapai) {
    venda = pPapai;
}
ao fechar o frame 2, eu executo o metodo:
venda.metodopai("1");//jogo oq ele deve setar dentro dos parenteses, mas nada acontece.
drsmachado
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:
private frame1 venda;

public frame2(frame1 pPapai) {
    venda = pPapai;
}
ao fechar o frame 2, eu executo o metodo:
venda.metodopai("1");//jogo oq ele deve setar dentro dos parenteses, mas nada acontece.
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.
L

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 …

drsmachado

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?

L

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.

L

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);
    
        }
L

galera consegui graças a esse video:

obrigado a todos que ajudaram…

Criado 27 de maio de 2013
Ultima resposta 28 de mai. de 2013
Respostas 12
Participantes 4