Estou iniciando meu desenvolvimento em Java. Possuo uma classe matematica que criei para fins de testes e um jPanel com 1 jLabel e 1 jButton.
Quando pressionado o jButton, ele devera chamar o metodo calculaQuadrado(3) da classe matematica e esta por sua vez deverá modificar o valor Text do jLabel com o resultado. Minha dúvida é: Como faço isso sem causar o StackOverFlow?
tentei instanciar dentro da classe matematica o jFrame e dentro do jFrame a classe matematica. Porém isso deu o StackOverFlow. Percebo que o que eu fiz é errado e gostaria de saber qual a maneira certa de proceder.
class matematica
{
void calculaQuadrado(int x)
{
int quadrado;
quadrado=x*x;
System.out.println("O quadrado de " + x + " é: " + quadrado);
// jLabel1.setText("O quadrado de " + x + " é: " + quadrado);
}
}
No jFrame há os seguintes objetos:
-jButton1
-jLabel1
void jButton1_actionPerformed(ActionEvent e)
{
??? Qual codigo devo colocar aqui???
//matematica.calculaQuadrado(3);
}
Agradeço desde já qualquer ajuda…
Editado por JavaTeco. Por favor, utilize a tag Code para facilitar a visualização. Obrigado.
Seja bem vindo!
Teria como vc postar o código, senão fica dificil de ajudar… blz?
Estou colocando duas classes que apresentam o mesmo problema descrito acima. Quando eu instancio a classe testando, ocorre o java.lang.StackOverflowError. Eu já sei o motivo do erro. O que quero descobrir na verade é a melhor solução para que classes distintas acessem os métodos uma das outras.
Assim, gostaria que a classe testando acessasse os métodos da classe mensagem e a classe mensagem acessasse os métodos da classe testando sem causar o StackOverflowError.
Classe mensagem
[code]class mensagem
{
testando test;
public mensagem() {
test = new testando();
}
public mensagem(testando t) {
this.test = t;
}
void imprimeMensagem(int n)
{
if (n==1){
System.out.println("Mensagem 1");
}
else if (n==2){
System.out.println("Mensagem 2");
}
else {
System.out.println("Qualquer mensagem");
}
//# Aqui está o erro
//Gostaria que fosse possivel ocorrer test.hahaha()
test.hahaha();
}
}[/code]
Classe testando
[code]class testando
{
mensagem mensa;
public testando() {
mensa = new mensagem();
}
public testando(mensagem m) {
this.mensa = m;
}
void hahaha()
{
System.out.println("hahaha");
}
void imprime()
{
//OK aqui eu consigo chamar o metodo imprimeMensagem() do objeto mensa
mensa.imprimeMensagem(1);
mensa.imprimeMensagem(2);
mensa.imprimeMensagem(6);
}
}[/code]
Agradeço a ajuda!