Dúvida simples - StackOverFlow

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!