Passar valores de um frame para outro

2 respostas
charleston10

Olá pessoal bom dia,

Sei que existe vários tópicos com esse assunto, mas minha dúvida é bem específica,
criei todo código para fazer funcionar a passagem de um texto para outro formulário, o que eu fiz,
tenho uma aplicação principal que é da empresa e outra eu fiz só pra testar.

Na aplicação da empresa nao consegui mandar o valor de texto para outro formulário,
mas na aplicação de teste funcionou do jeito que era pra funcionar.

É assim, eu em um formulário eu tenho um JText e no outro também, eu preciso mandar esse texto
do Frame1 para o Frame2 atraves do clique do botão.

Testei, parece que funcionou uma coisa, ele manda o texto, mas não edita o Jtext fiz um JOptionPane aparece a mensagem
com o texto enviado, tambem fiz um PrintLn e aparece o texto enviado, só que não edita o campo de texto com o Texto enviado,
alguem poderia me esclarecer o que pode estar acontecendo??

2 Respostas

W

Poste seu código.

Há mais de uma forma de passar valores entre forms.

charleston10
Criei uma interface para usar o Listener
public interface interfaceListener {
    public void mensagem(String msg);
}
Criei uma classe para setar o listener para meu formulario assim ele é ouvinte esperando receber algo, e a classe tambem tem o método para enviar para o ouvinte (jframe).
public class sendMessageReady {
    interfaceListener listener = null;
    Main frame = new Main();

    public void setListener(interfaceListener listener) {
        this.listener = listener;
    }

    public void metodo(String msg){
        this.setListener(frame);
        this.listener.mensagem(msg);        
    }
}
E no meu form esta implementando o listener para ser ouvinte e junto dele tem o metodo da implementação isso fará com que receba os valores quando enviado
public class Main extends javax.swing.JFrame implements interfaceListener {

...

 public void mensagem(String msg) {
        jtMessage.setText(msg);
        //quando eu coloco um JOptionPane .. (msg) aparece a mensagem, mas nao executa a linha cima
       //acredito que é instanciação, mas a questão é por quê?
    }
}

Já no meu outro Jframe é onde eu envio a mensagem para o ouvinte, usando o método da classe sendMessageReady

meu jframe blablabla () {
...
sendMessageReady sendMessage = new sendMessageReady();
...
private void jbSendActionPerformed(java.awt.event.ActionEvent evt) {  
        sendMessage.metodo("oi");
    } 
}

A lógica é essa..

Criado 24 de janeiro de 2013
Ultima resposta 24 de jan. de 2013
Respostas 2
Participantes 2