Problema com Set e Get

6 respostas
Guilherme_Reda

Oi, eu estou fazendo um trabalho de escola e estou com um problema
eu fiz uma tela de login, quando o login esta correto, eu chamo uma classe onde eu tenho as minhas strings
e eu quando eu faço o login
eu pego o que o usuário digitou no campo de usuário e faço isso
Usuario.setUsuario(usuario);

Na outra tela, quando eu vou pegar o usuário ele me retorna null

olha uma parte do código aqui.

Classe Usuario:
package mensagem;

public class Usuario {

    private String usuario;

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }
}
Tela Login
package mensagem;

import javax.swing.JOptionPane;

public class Login extends javax.swing.JFrame {

    BdUsuario bd;
    Usuario Usuario;

    public Login() {
        bd = new BdUsuario();
        Usuario = new Usuario();
        initComponents();
    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        this.dispose();
    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String usuario = tUsuario.getText();
        String senha = tSenha.getText();
        if (bd.CheckLogin(usuario, senha) == true) {
            CaixaEntrada ce = new CaixaEntrada();
            Usuario.setUsuario(usuario);
            ce.setVisible(true);
            this.dispose();
        } else {
            JOptionPane.showMessageDialog(null, "Este login não existe.");
        }
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Login().setVisible(true);
            }
        });
    }           
}
Tela CaixaEntrada
package mensagem;

import java.util.*;
import javax.swing.table.DefaultTableModel;

public class CaixaEntrada extends javax.swing.JFrame {
    Usuario Usuario;

    public CaixaEntrada() {
        Usuario = new Usuario();
    }

    private void formWindowActivated(java.awt.event.WindowEvent evt) {
        tMsg.setText(Usuario.getUsuario());
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new CaixaEntrada().setVisible(true);
            }
        });
    }
}

6 Respostas

manolimars

Amigo,

seu problema está na classe CaixaEntrada,
voce está criando uma nova instância para o Objeto Usuario.

o Correto seria voce passar o usuario no método construtor, algo do tipo:

a chamada na Classe Login ficaria assim:

Usuario.setUsuario(usuario);  
CaixaEntrada ce = new CaixaEntrada(Usuario);  
ce.setVisible(true);

e no método construtor do Caixa Entrada ficaria assim:

public CaixaEntrada(Usuario user) {  
         this.Usuario = user;
     }
Guilherme_Reda

o Caixa Entrada é um JFrame
se eu muda ali eu tenho que muda em tudo?

manolimars

Sim, se voce mudar ali, todas as instância da CaixaEntrada terão que ser feitas assim:

Usuario user = new Usuario();
CaixaEntrada ce = new CaixaEntrada(user);
Guilherme_Reda

Olha, eu consegui mandar o nome do usuario quando eu faço o login
mas quando eu volto nela, ela nao ta mais la

tipo
quando eu eu vou enviar uma msg eu clico no botão que chama a tela de enviar msg
eu envio a msg, só que quando eu volto para a caixa de entrada ele perde o usuario

manolimars

posta o código da Caixa de Entrada que chama a tela de Enviar mensagem

Guilherme_Reda

Bom, não prescisa mais, eu consegui

mas agora estou com outra dificuldade
quando eu envio a msg, eu aperto enter pra uma nova linha
só que quando eu vo ler a msg ele nao le q ele pulo a linha
uso mysql

Criado 12 de março de 2011
Ultima resposta 12 de mar. de 2011
Respostas 6
Participantes 2