Prblema na criação da variavel global

Ola galera, sou novo em java e esse e o meu primeiro post no forum. Bom estou com o seguinte problema, tenho um jform “login” e outra chamado “Venda” e uma classe denominada “Usuario”, eu estou tentado passar um valor que esta no jform login para o jform Vendas, eu consigo transmitir blz o valor usando o “setter”, mas o problema eq não estou conseguindo pegar o valor usando o “Getter”.

Quero transmitir um texto de form login para o form Vendas.

no jform Login eu coloquei:

[code]public void transmitir() {

usuario dao = new usuario ();
dao.setG(“Texto a ser transnitido”);

}
[/code]

Na classe usuario coloquei:

[code]public class usuario {

public String g;

public void setG(String g) {
this.g = g;

System.out.println(g);

}

public String getG() {

return g;
}
}[/code]

No Jform Venda que vai receber o valor coloquei:

usuario ca = new usuario (); ca.getG(); System.out.println(ca);

o problema esta nesse jForm Vendas eu não consigo pegar o valor que foi setado.

usuario ca = new usuario ();  

Aqui vc está criando um novo objeto, e como vc não atribuiu nada para ele, quando você chama o metodo get() ele vem como null

Oi.

O encapsulamento via justamente evitar o acesso direto a membros da classe, nesse caso, a variavél.
Se você declara ela como public, não serve para nada os getters e setters, portanto, a primeira mudança é:

[code]public class usuario {

private String g;

public void setG(String g) {
this.g = g;
}

public String getG() {
return g;
}

}[/code]

Para recuperar o valor setado no objeto, depende totalmente do contexto e da forma que é utilizada.
Posta o seu código completo e onde não está conseguindo recuperar os valores que fica mais fácil ajuda-lo :slight_smile:

Nel o codigo que recupera o valor fica dentro de um botão no form vendas

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { usuario ca = new usuario (); ca.getG(); System.out.println(ca); }

Ele sempre me retorna o valor como NULL.

williamdasflores vc disse que eu estou criando um novo objeto, por isso retorna null, vc poderia porfavor me dar um exemplo de como eu criaria um metodo para receber o valor?

Então cara, eu não sei como ta o resto de seu código, mas um jeito rápido seria usar o objeto dao que vc criou.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { usuario ca = new usuario (); ca.setG(dao.getG()); System.out.println(ca.getG()); }

Ou, vc pegao valor do objeto dao direto

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { System.out.println(dao.getG()); }

Eu não testei esses código aí que descrevi acima, ve ai qualquer coisa você posta ai de novo :smiley:

Vamos ver se eu entendi, você tem uma janela de login e posteriormente que mostrar em outra janela denominada venda o nome do usuário e tlz.

vamos lá uma das coisas que você realmente tem que modificar é a sua class usuário, de acordo com as conversões do java toda classe tem que ter nome com primeira letra maiúscula e como nel já disse se sua variável está como public não faz sentido o uso de get e set, então sua classe Usuario fica assim.

public class Usuario{

   private String nome;

   public void setNome(String nome){
      this.nome = nome;
   }

   public String getNome (){
      return this.nome;
   }

}

feito isso está certa a sua classe Usuario, agora no seu JForm de vendas crie um construtor que receba um usuário, vou usar pseudo-código aqui

   public class Vendas{

   private Usuario usuario;

   public Vendas(Usuario usuario){
      this.usuario = usuario;
   }

   //e caso queira exibir o nome do usuário ao clicar no jbutton ou executar qualquer outra ação faz aqui
   private void buttonAction(action){
      //nesse ponto era onde você estava instanciando outro objeto usuário por isso sempre recebia null
      System.out.println(usuario.getNome());
   }

e no JForm login

public void transmitir() {

   Usuario usuario = new Usuario ();
   dao.setNome("Nome do usuário");

   Vendas vendas = new Vendas(usuario);
   vendas.setVisible(true);

}

Bom sei que não ficou muito claro, mas espero ajudar, sou meio novo nesse lance de colaboração apesar de já fazer um tempo que programo não colaborava muito :roll:

vou continuar acompanhando a discussão e estou aqui pra ajudar.

williamdasflores ele não reconece o dao (fica com aquele risco vermelho em baixo), acho q e pq o objeto “dao” ta no form Login e esse cod que vc passou fica no form Vendas.
existe outra forma de pegar o valor contido no “getG” que se encontra na classe usuario e jogar no form Vendas?

Charles vou testar o que vc passou e depois post se deu certo

vlw a todos

[quote=Heberth.gw]Nel o codigo que recupera o valor fica dentro de um botão no form vendas

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { usuario ca = new usuario (); ca.getG(); System.out.println(ca); }

Ele sempre me retorna o valor como NULL.

williamdasflores vc disse que eu estou criando um novo objeto, por isso retorna null, vc poderia porfavor me dar um exemplo de como eu criaria um metodo para receber o valor?[/quote]

Tais bem perdido mesmo. Acredito que o ideal é que faça a leitura de alguma apostila, recomendo a FJ-11 da Caelum.

Se mandar imprimir o objeto desse jeito vai chamar o método toString() da classe Obejct e etc.
Enfim, você precisa setar o valor e recupera-lo posteriormente.

Lembre-se que Java eh totalmente sensitivity case, a classe DEVE iniciar com a letra maiuscula

public class Usuario {

}

Usuario ca = new Usuario();