[RESOLVIDO] Usar variável do swing em outra classe
12 respostasResolvido
swingjava
R
roboom
Salve galera!
Eu tenho um projeto onde eu uso o Swing, e eu criei uma segunda classe além da classe da janela Swing.
O que eu preciso é acessar as variáveis da janela Swing nessa segunda classe, mas não está dando certo de jeito nenhum.
Na classe da Janela eu tenho o campo de declaração de variáveis que é preenchido automaticamente conforme são criadas variáveis na janela (uso NetBeans). Exemplo:
private javax.swing.JComboBox boxDia;
Na classe da Janela eu uso a variável boxDia normalmente, mas na segunda classe não consigo usá-la.
Se eu tento usá-la na segunda classe recebo o erro:
cannot find symbol
symbol: variable boxDia
Pesquisei bastante e tentei algumas coisas, li sobre escopo, mas nesse caso tá foda entender como fazer!
Alguma dica pro iniciante?
Valeu!
Objetos trocam mensagem entre si usando métodos.
Então crie métodos nas suas classes para uma poder “conversar” com a outra.
R
roboom
Quero pegar o valor da JComboBox em uma classe diferente da classe da Janela Swing, mas a variável é privada.
R
roboom
Valeu staroski, e como eu faria isso? Qual tipo de método?
Acho que tenho que criar um método na classe principal que torne a variável que é privada por padrão em uma variável pública, certo?
V
Vinicius_Salles1 like
A sua variável é privada, mas a classe não.
Você não precisa alterar sua variável para pública, pois quem lhe fornecerá o valor será o método que você criar.
Digamos que sua classe chama Teste, para você ter acesso a esta classe dentro de uma outra classe basta você chamar esta classe da seguinte forma.
Teste novoteste = new Teste();
W
wallacecampanha1 like
Bom dia, amigo.
Para fazer o que o amigo @staroski recomendou, vá na classe que tem as informações desejadas e crie uma função exclusiva para retornar estes valores e deixe esta função como public.
O porque de utilizar um método exclusivo para retornar estes valores, assim você mantêm as informações em PRIVATE e só retorna os valores sem modificações.
Minha classe principal se chama SelfAware, onde as variáveis privadas estão (boxDia), e minha classe secundária se chama Verifyer, onde eu quero usar as variáveis privadas que estão em SelfAware. Então seguindo seu exemplo o código ficaria:
Mas recebo o erro ao chamar o método: "non-static method getDia() cannot be referenced from a static context"
Esso erro diz que a classe Verifyer é estática, mas como pode ver ela não é… estranho
Valeu pela mão até então staroski!! Já aprendi como fazer, só esse erro tá no caminho.
S
staroski1 like
Não, esse erro diz que você está tentando invocar o método getDia de forma estática.
Você escreveu
intdia=SelfAware.getDia();
E deveria ser:
intdia=seuObjetoDoTipoSelfAware.getDia();
R
roboom
Ooohh pois é meu. Enfim deu certo! Muito obrigado, kudos!