Alguem me da uma ideia ;D

Ai pessoal td bem? ;O)

eu vim aqui mais com uma duvida de como irei resolver esse “problema” que nao é na verdade um problema:

Eu to fazendo um programa que vc entra com dados, por exemplo, cor, tamanho da linha, tipo de forma geometrica, etc, que ai essas informaçoes vao
ser usadas pra desenhar uma figura abstrata em um JFrame. O problema é o seguinte:
Eu criei um metodo pra cada figura. Por exemplo, a pessoa fala: eu quero que a figura final tenha uma linha, um retangulo e uma elipse (supondo). Entao
eu criei um metodo pra cada assim:

public void Retangulo(){ Rectangle2D r = new Rectangle2D.Double(0,0,80,130); }
ate ai tudo bem, pq eu fiz com o intuito: (supondo) se (opçao) retangulo estiver marcada, intaum Retangulo();
ai vem o problema:

AffineTransform at = AffineTransform.getTranslateInstance(w / 2, h / 2); g.draw(at.createTransformedShape(aqui vem a variavel "r"));
só q nao da pra por “r” ali, pq ta dentro do metodo, e nem da pra chamar o metodo ali.
Alguem consegue me ajudar? a chegar em uma soluçao parecida que funcione?
valeu pessoal :smiley:

[quote=Yakkut]Ai pessoal td bem? ;O)

eu vim aqui mais com uma duvida de como irei resolver esse “problema” que nao é na verdade um problema:

Eu to fazendo um programa que vc entra com dados, por exemplo, cor, tamanho da linha, tipo de forma geometrica, etc, que ai essas informaçoes vao
ser usadas pra desenhar uma figura abstrata em um JFrame. O problema é o seguinte:
Eu criei um metodo pra cada figura. Por exemplo, a pessoa fala: eu quero que a figura final tenha uma linha, um retangulo e uma elipse (supondo). Entao
eu criei um metodo pra cada assim:

public void Retangulo(){ Rectangle2D r = new Rectangle2D.Double(0,0,80,130); }
ate ai tudo bem, pq eu fiz com o intuito: (supondo) se (opçao) retangulo estiver marcada, intaum Retangulo();
ai vem o problema:

AffineTransform at = AffineTransform.getTranslateInstance(w / 2, h / 2); g.draw(at.createTransformedShape(aqui vem a variavel "r"));
só q nao da pra por “r” ali, pq ta dentro do metodo, e nem da pra chamar o metodo ali.
Alguem consegue me ajudar? a chegar em uma soluçao parecida que funcione?
valeu pessoal :D[/quote]

Não sei se entendi, mas …

Porque você nao muda o seu metodo para que ele retorne o r, assim:

public Rectangle2D retangulo(){ return new Rectangle2D.Double(0,0,80,130); }

Entao é só chamar sua função aonde você queria o “r”

AffineTransform at = AffineTransform.getTranslateInstance(w / 2, h / 2); g.draw(at.createTransformedShape(retangulo()));

Cara funcionou, quando eu tava esperando pela resposta eu pensei em algo parecido.
Valeu cara :smiley: