Logo Hardware.com.br
parcbjr
parcbjr General de Pijama Registrado
4.3K Mensagens 116 Curtidas

Problema com Java

#1 Por parcbjr 10/05/2017 - 15:14
Boa Tarde, caros amigos do Fórum.
Estudo Ciência da Computação e estou fazendo um projeto de calcular consumo enérgico no Java Swing, porém estou com um problema de instanciar objeto.
Essa é a interface gráfica usada.
Anexo do post

Criei uma Super Classe com os atributos, e sub-classe dos objetos por exemplo Lampada que tem o metodo CalcConsumoMensal110 e CalcConsumoMensal220, no caso os watts já são pré-determinados, o usuário só dá as horas de uso e quantidade de itens.
Mas o problema que obtive é que pra chamar essa classe CalcConsumoMensal eu precisaria pegar o valor de horas e quantidade como parametros e logicamente instanciar um objeto pra poder usar o metodo.
Coloquei pra quando o usuário clicar no item por exemplo Quarto>Lampada>110V, vai instanciar um objeto lampada, porém pra pegar os valores de horas e quantidade que o usuario dá (clicando em "Adicionar") e pra chamar o metodo da lampada (dentro do botao "Adicionar") para fazer o cálculo mensal eu não tenho acesso ao objeto instanciado dentro do evento do mouse-click porque são dois botões diferentes.
Ou seja, eu clico no tipo de item que quero, instancia o objeto dentro do metodo do botao do item, mas este objeto criado só fica dentro do metodo, e eu nao tenho acesso a este objeto criado pra usar em outro botao(o botão "Adicionar").
Vocês sabem alguma solução pra esse problema? Não gostaria de fazer gambiarra nem nada, só gostaria de saber se tem jeito de eu instanciar um objeto dentro de um metodo e outro metodo usar esse objeto instanciado.
Segue print do código:
Anexo do post
Anexo do post
Anexo do post

Como podem ver o "objeto" criado em outro metodo que é o clique no usuario escolhendo qual item ele quer, não é alcançado pela classe do botao "Adicionar" que é para adicionar horas e quantidade como parametro para o metodo criado dentro da classe.
Grato a quem puder me ajudar.

Anexos

TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#2 Por TerraSkilll
11/05/2017 - 08:18
Isso ocorre porque o objeto está sendo criado dentro de um escopo diferente. Ele não se torna "global", ou seja, acessível fora do método jMenu6MouseClicked() .

Vejo duas opções mais simples:
1 - torne seu objeto do tipo Lampada um atributo da classe, acessível por todo o código;
2 - crie o objeto somente quando for usá-lo (no caso, dentro do método jButton2MouseClicked ).

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal