Pintar várias coisas no mesmo painel

Eai pessoal blz?!

Meu problema é o seguinte.

Tenho um JPanel, o qual diversar coisas serão pintadas, por exemplo… Eu tenho uma classe Retângulo, uma Círculo, e uma Triângulo. O que eu poderia fazer, é criar um método paint() para cada uma dessas classes, e fazê-las extender de JPanel, só que ai seriam pintados cada um em seu painel. Mas acontece é que eu queria pintar todos separadamente em eventos diferentes em um mesmo painel que poderia ser criado em outra classe, mas não sei como fazer isso.

Desde já agradeço.

  1. Crie uma classe (digamos que ela se chame “SuperficieDesenho”) e faça-a derivar de JPanel
  2. Crie alguns métodos nessa classe onde você pode adicionar uma lista de objetos Circulo, Retangulo, Triangulo. Note que essas classes devem conter um método que permita desenhá-las recebendo um parâmetro Graphics2D (digamos que esse método se chame “desenhe”); não é para essas classes Circulo, Retangulo, Triangulo etc. implementarem o método “paint”. Isso não se faz.
  3. Sobreponha o método paintComponent (NÃO é para sobrepor o método paint!) dessa classe SuperficieDesenho. Nesse método paintComponent, percorra a lista de objetos que você adicionou, e vá chamando o método “desenhe” de cada um.

Poutz cara… como eu não pensei nisso… matou meu problema…

Brigadão msm!

Mais uma dica. Para todas essas formas geométricas, faça-as implementarem uma interface comum (digamos que se chame “Forma”) e essa interface é que tem o método “desenhe”. Aí fica fácil designar a lista de formas geométricas que têm de ser desenhadas, porque se resume a uma simples List<Forma>.