[Resolvido]Passar dados de um JFrame para o outro JFrame sem precisar fechar e abrir novamente

Olá, estou com um pequeno problema, Tenho um JFrame chamado Usuario, onde está todo os dados usuário, nele eu tenho um botão (Alterar), que
serve para alterar os dados do usuário no banco de dados. Mas estou com um problema,
Eu precisava alguma forma de quando eu clicar no botão Alterar um novo Jframe apareça, ou um JOptionPane contendo os JTextFields necessários para a alteração.
Mas tudo isso sem fechar o JFrame Usuario.

e quando eu clicasse em salvar no JFrame 2 (ou JOptionPane)automaticamente ele enviasse para o JFrame Usuario em tempo de execussão sem precisar fecha-lo para atualiza-lo com o banco.

Obrigado desde já.

=D

Esta esquesito sua aplicação, porque esta fazendo dessa maneira?

Abraços

Então, é que eu tenho uma tela do Usuário onde está todos os dados dele, e quando eu clicar em alterar aparecer outro JFrame com os JTextField para alterção, salvando assim no banco de dados e enviando automaticamente para o JFrame anterior.

JOptionPane como voce disse la em cima… pelo que conheço não tem como colocar alguns textField…
apenas um… mas não te serve

cria o seu JFrame… e passa o seu bean por parametro

this.addWindowListener(new java.awt.event.WindowAdapter(){ @SuppressWarnings("static-access") public void windowOpened(java.awt.event.WindowEvent e) { } });

lembrando que se quiser mesmo usar JFrame, quando fechar ele atualizar o de tras… voce deverá implementar Padrão Observer

ou invez de usar Frame… use JDialog

Obrigado pessoal, mas não tem como ser um pouquinho mais detalhado, é que eu sou meio novo. esse do ActionListener eu coloco no primeiro ou no segundo JFrame.

[quote=dudu_sps]JOptionPane como voce disse la em cima… pelo que conheço não tem como colocar alguns textField…
apenas um… mas não te serve

cria o seu JFrame… e passa o seu bean por parametro

this.addWindowListener(new java.awt.event.WindowAdapter(){ @SuppressWarnings("static-access") public void windowOpened(java.awt.event.WindowEvent e) { } });[/quote]

Se você poder me explicar detalhadamente como usar isso, ficarei muito agradecido.
Valeu cara.
Abraço.

Bom… vamos la

na tela principal sua ai… voce vai chamar a outra tela normal

creio eu que voce fez um objeto do tipo Usuario

dai voce vai passar esse usuario como parametro

na outra tela voce vai fazer um tipo

private Usuario usuario = new Usuario();

dai voce vai fazer um getter and setter;

e na sua tela segunda… voce vai colocar na inicialização dela… o evento que te passei ali em cima

e dentro do evento vai por

setUsuario(getUsuario());

e na segunda tela… voce vai ter o objeto da tela de traz… sendo assim… podendo manipular o objeto…

indico a fazer a segunda tela como JDialog

la em cima quando voce cria a tela… vai tar assim

classe extends JFrame… faz ela extends JDialog

dai … quando voce apertar alterar… na tela de tras… voce faz um tela.getUsuario(); e altera ele

ou usa o Padrão Observer… que ele é de observar… voce vai chamar a segunda tela… e a primeira vai tar observando o que a segunda vai fazer… e quando a segunda clicar em alterar… ou finalizar… ela vai escutar e vai fazer as alterações… ou voce pode alterar na segunda tela mesmo… e somente atualizar a tela de tras

[quote=dudu_sps]Bom… vamos la

na tela principal sua ai… voce vai chamar a outra tela normal

creio eu que voce fez um objeto do tipo Usuario

dai voce vai passar esse usuario como parametro

na outra tela voce vai fazer um tipo

private Usuario usuario = new Usuario();

dai voce vai fazer um getter and setter;

e na sua tela segunda… voce vai colocar na inicialização dela… o evento que te passei ali em cima

e dentro do evento vai por

setUsuario(getUsuario());

e na segunda tela… voce vai ter o objeto da tela de traz… sendo assim… podendo manipular o objeto…

indico a fazer a segunda tela como JDialog

la em cima quando voce cria a tela… vai tar assim

classe extends JFrame… faz ela extends JDialog

dai … quando voce apertar alterar… na tela de tras… voce faz um tela.getUsuario(); e altera ele

ou usa o Padrão Observer… que ele é de observar… voce vai chamar a segunda tela… e a primeira vai tar observando o que a segunda vai fazer… e quando a segunda clicar em alterar… ou finalizar… ela vai escutar e vai fazer as alterações… ou voce pode alterar na segunda tela mesmo… e somente atualizar a tela de tras

[/quote]

Então Cara, ajudou bastante, deu pra mim entender a lógica de como funciona, mas eu não to coneguindo fazer não. Vou mostrar mais ou menos como eu to fazendo.
só um rascunho.

Classe Usuário

        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        OutraTela outra = new OutraTela(this); //passando o paramêtro referente ao objeto
        outra.setVisible(true);
       }

Classe OutraTela

public class OutraTela extends javax.swing.JFrame {
    private Usuarioo user, user2 = new Usuarioo();

    /** Creates new form OutraTela */
    public OutraTela(Usuarioo p_parametro) {
        user = p_parametro;
        initComponents();
    }

    public void setUsuario(Usuarioo p_parametro){
        user.txtNome.setText(txtAtualiza.getText());
    }
    public Usuarioo getUsuario(){
        return this.user;
     
    }

    public void eventooo(){
         this.addWindowListener(new java.awt.event.WindowAdapter(){
             @SuppressWarnings("static-access")
             public void windowOpened(java.awt.event.WindowEvent e) {
                 setUsuario(getUsuario());
                             }
         });
    }

Será que é mais ou menos isso que eu fiz.
Obrigado até agora cara
Abraço

Se você poder me ajudar, e colocar o código dos dois JFrames.

Obrigado.

Cara consegui aqui, de um jeito mais fácil, mais valeu cara, pq a sua lógica que me ajudou.

Só não sei se o que eu to fazendo é correto.

olha só.

No evento do botão da classe usuario

   OutraTela outra = new OutraTela(this);
   outra.setVisible(true);

E na classe OutraTela


private Usuario user = new Usuario();

public OutraTela(Usuario p_parametro){ //Construtor
     user = p_parametro;
}

//No evento do botão salvar eu só fiz assim;

user.txtNome.setText(txtAtualiza.getText());

Funcionou certinho, do jeito que eu queria.

Só mais um problema cara, como faço para quando eu instanciar a classe OutraTela, a classe Usuario fique impedida de mecher.

Obrigadoo cara, vc ajudou bastante.

1 curtida