Como importar o valor de uma variável de outra classe?

6 respostas
T

Pessoal, estou com esse problema a muito tempo. Como faço para importar uma variável de outra classe, onde o valor da variável é atribuído após clicar em um botão?

Um exemplo do que eu tento fazer:

class A{
     public String val;

     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
             val = "ok";
     }
}

class B{
     public void main(){
           A a = new A();
           System.out.println(a.val);
     }
}
Observações:

O valor da variável TEM que ser atribuído APENAS quando o botão for clicado;

Eu preciso receber essa variável na classe B;

Eu  tentei usar o encapsulamento de variável mas não da certo;

Obrigado a todos.

6 Respostas

C

Botou a variável como static ?

T

não

T

tentei agora e ainda não deu certo, tens algum exemplo pra me mostrar?

D

Como o @Chaybelucas comentou, vc pode atribuir o modificador static a sua string ‘val’ e depois chamá-la com um ‘A.val’. (Não há necessidade de instanciar a classe).
Caso esteja trabalhando com ‘Inner Class’, é necessário atribuir o modificador static a sua classe também.
Qualquer coisa dá um grito ai :wink:

P

Podes estar a inicializar “A” mais do que uma vez e atribuir a variável numa instância e tentar ler em outra. Usar static resolve o teu problema mas não será a forma elegante de o fazer. Podes postar mais do teu código em vez deste exemplo dummy que criaste para explicar o caso?

A

A classe “A” do seu exemplo deve ser static e a variável também.
Eu tentei isso e deu certo.

btnAperte.addActionListener(new acao());
btnExibe.addActionListener(new exibe());

public static class acao implements ActionListener {
	static String valor = new String();
	public void actionPerformed(ActionEvent e) {
		valor = "pressionado";
		System.out.println("foi pressionado");
	}
}
	
public class exibe implements ActionListener {
	public void actionPerformed(ActionEvent e) {
		System.out.println(acao.valor);
	}
}

Espero que tenha ajudado.

Criado 25 de fevereiro de 2016
Ultima resposta 28 de fev. de 2016
Respostas 6
Participantes 5