Ler a mesma variavel em 2 classes diferentes

Estou fazendo um programa simples de validação de usuario. A validação esta funcionando.

O meu problema é o seguinte.

Eu tenho 2 classes:

1 - Classe Menu: Onde esta a barra de menu, com todas aquelas opções que conhecemos.

2 - Classe usuarioSenha: Aqui é onde esta o codigo e a tela de usuario e senha.

Na classe, usuarioSenha, tem uma variavel chamada “usuario”, essa variavel esta dentro do Action listener no botao Login. Ela serve para capturar o que foi escrito na caixa de usuario.

Ex:


 String usuario;
                usuario=Jusuario.getText();

Esta funcionando perfeitamente.

Lembre-se que eu disse que a variavek esta na classe “2 - usuarioSenha”.

Porém, na classe 1 “Classe Menu”, eu tenho um JLabel para informar qual o nome do usuario que foi digitado la na outra classe (no caso a classe 2, a Classe usuarioSenha ).

Então quando eu logar com o usaurio, o nome dele vai aparecer ao lado de um JLabel chamado:

Usuario Logado: (Aqui o nome do usuario que foi digitado na Classe 1 – usuario=Jusuario.getText():wink:

1º Duvida: Eu informo o nome do usuario atraves de um JLabel. Ou o JLavel nao le variaveis e sim apenas String?

2º) Não estou conseguindo fazer com que a classe 2 (Classe usuarioSenha) leia a variavel “Usuario” da classe 1

(Classe Menu).

Sendo que ela nao é privada.

Alguem pode me ajudar?

Abração;

Amigo ta muito confuso a sua explicação,

te aconselho a postar o seu codigo para que possamos te ajudar, blz!

Olá Pessoal.

Eu tenho uma classe, que vamos chamar de “classe 1”. elaq possui uma variavel chamada jUsuario.

Porem, tambem tenho uma segunda classe no meu programa, que vamos chamar de “classe2”.

Eu queria que a “classe 2”, pudesse ler a variavel “Jusuario”, que se existe na “classe 1”. Porem, nao sei como fazer isso. Pois o netBeans aponta um erro que a variavel nao existe na classe.

Como posso fazer isso?

Vou tentar explicar melhor…

http://www.divshare.com/download/4219045-1db

Na imagem acima, 2 janelas, cada janela é uma classe. A Janela de traz, é a classe 2, e a janela da frente(usuario e senha é a classe 1, onde possui a variavel jUsuario.) Quando o usuario logar-se, vai aparecer o nome do usuario logado na classe 2, na janela do fundo, que por sua vez tem que conseguir ler a variavel ca classe 1,da caixa de texto, que é a JUsuario.

Vejam o codifo fonte abaixo. Esse primeiro, esta a validação do usuario e a senha.

O cliente coloca o nome do usuario no campo Jusuario que é capturado pelo gettext() e armazenado em uma variavel chamada “usuario”.


package empresa;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ClasseUsuario_Senha extends JFrame {
    
    JLabel textoUsuario, textoSenha;
    JPasswordField Jsenha;
    JTextField Jusuario;
    
    JButton botaoEntrarSenha;
    
   public String usuario;
   public String senha;
    
    public ClasseUsuario_Senha()
    {
        
        
        Container tela = getContentPane();
        
        tela.setLayout(null);
        
        textoUsuario = new JLabel("Usuário: ");
        textoSenha = new JLabel("Senha: ");
        Jsenha = new JPasswordField(12);
        Jusuario = new JTextField();
        
        
        
                   
        textoUsuario.setBounds(220, 150, 100, 20);
        Jusuario.setBounds(285, 150, 100, 20);
        
        textoSenha.setBounds(220, 190, 100, 20);
        Jsenha.setBounds(285, 190, 100, 20);
        
        botaoEntrarSenha = new JButton("Login...");
        botaoEntrarSenha.setBounds(500, 400, 100,20);
      
   
        
        botaoEntrarSenha.addActionListener(
                new ActionListener()
        {
            public void actionPerformed(ActionEvent login)
            {
                String usuario;
                usuario=Jusuario.getText();
                
                
                
                String senha= new String(Jsenha.getPassword());
               
                
                
                if(!usuario.equals("bruno"))
                {
                    
                  JOptionPane.showMessageDialog(null,"Usuario incorreto","Mensagem de erro", JOptionPane.ERROR_MESSAGE, null);  
                    
                }
                
                 if(!senha.equals("12345"))
                {
                    
                  JOptionPane.showMessageDialog(null,"Senha incorreta","Mensagem de erro", JOptionPane.ERROR_MESSAGE, null);  
                    
                }
                
                
                
            }
            
            
        }
                
                
                
                
                );
    
            
            
                
                
       
       
       tela.add(textoUsuario);
       tela.add(textoSenha);
       tela.add(Jsenha);
       tela.add(Jusuario);
       tela.add(botaoEntrarSenha); 
       
       
       
       
       setSize(640,480);
       setVisible(true);
       
       
    }

}

A segunda classe, tem que ler a variavel da 1º classe, a “usuario” mas nao estou conseguindo fazer uma classe ler variavel de outra classe:

codigo da segunda classe:


package empresa;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class ClasseMenu extends JFrame{
    
    JMenuBar Menubarra;
    
    JMenu Menulogin;
    
    JMenuItem Menuusuario;
    
    JLabel infUsuario;
    JLabel usuarioLogado;
    
    public ClasseMenu()
    {
        
      Container telaMenu = getContentPane();
      
      telaMenu.setLayout(null);
      
      infUsuario = new JLabel("Usuario Logado: ");
      infUsuario.setBounds(10,5,100,20);
      telaMenu.add(infUsuario);
      
      usuarioLogado = new JLabel();
      usuarioLogado.setBounds(110,5,100,20);
      telaMenu.add(usuarioLogado);   
      
      
              
      Menubarra = new JMenuBar();
      
      setJMenuBar(Menubarra);
        
      Menulogin = new JMenu("Login");
      
      Menubarra.add(Menulogin);
      
      Menuusuario = new JMenuItem("Trocar Usuário");
      
      Menuusuario.setMnemonic(KeyEvent.VK_T);
       
      Menulogin.add(Menuusuario);
      
      
      
      setSize(970,670);
      
      setLocationRelativeTo(null);
      
      setVisible(true);
      
      
      
      
       
    }

}


Pra classe 2 ver a variável usuario da classe 1 é necessário que ela tenha uma instancia da classe 2.

na classe ClasseMenu coloca:

ClasseUsuario_Senha objeto = new ClasseUsuario_Senha();
String usuario = objeto.usuario;

ou muda a variável usuario para static e acessa diretamente:

public static String usuario;

Acessa diretamente na classe ClasseMenu

String usuario = ClasseUsuario_Senha.usuario;

Ja leu sobre métodos getter/setter, encapsulamento?

++

Ae pessoal. Obrigado novamente.

Porque o Jlabel nao esta informando o valor da variavel “usuario”? se eu estou conseguindo ler ela corretamente na outra classe?

 String usuarios=ClasseUsuario_Senha.usuario;  // Passo o valor para a var. "usuarios". 
    
    public ClasseMenu()
    {
        
      Container telaMenu = getContentPane();
      
      telaMenu.setLayout(null);
      
      infUsuario = new JLabel("Usuario Logado: ");
      infUsuario.setBounds(10,5,100,20);
      telaMenu.add(infUsuario);
      
      usuarioLogado = new JLabel(usuarios);    // Era para o Jlabel informar o valor digitado.
      usuarioLogado.setBounds(110,5,100,20);
      telaMenu.add(usuarioLogado);      

A outra classe:


botaoEntrarSenha.addActionListener(
                new ActionListener()
        {
            public void actionPerformed(ActionEvent login)
            {
                String usuario;
                usuario=Jusuario.getText(); // pega o valor digitado e insere na variavel "usuario".
                
                
                
                String senha= new String(Jsenha.getPassword());
               
                
                
                if(!usuario.equals("bruno"))
                {
                    
                  JOptionPane.showMessageDialog(null,"Usuario incorreto","Mensagem de erro", JOptionPane.ERROR_MESSAGE, null);  
                    
                }
                
                 if(!senha.equals("12345"))
                {
                    
                  JOptionPane.showMessageDialog(null,"Senha incorreta","Mensagem de erro", JOptionPane.ERROR_MESSAGE, null);  
                    
                }
                

GENTE

eu tenho a variável “a” declarada como float em uma classe do meu programa, sendo ela inserida da seguinte forma:

a=Float.parseFloat(JOptionPane.showInputDialog("Digite o A: "));

Agora preciso utiliza-la em outra classe desse programa… como faço para chama-la / declara-la nessa outra classe?