E aê galera, blz?
Estou tendo dificuldades com desenhos polimórficos.
Eu criei uma classe abstrata chamada Desenho e mais duas outras chamadas de Circulo e Retangulo, que extendem a classe abstrata Desenho.
Eu implementei polimorficamente as clases Circulo e Retangulo, mas isso funcionou em JFrames diferentes.
Quando tentei implementar o Circulo e Retangulo no mesmo JFrame não deu erro, mas só apareceu um deles.
A clase Desenho é essa:
[code]import java.awt.;
import javax.swing.;
public abstract class Desenho extends JPanel
{
public abstract void desenho(Graphics g);
public void paintComponent(Graphics g)
{
super.paintComponent(g);
desenho(g);
}
}[/code]
A classe Retangulo é:
[code]import java.awt.;
import javax.swing.;
public class Retangulo extends Desenho
{
public void desenho(Graphics g)
{
g.drawRect(10, 10, 50, 50);
}
}[/code]
E a classe Circulo:
[code]import java.awt.;
import javax.swing.;
public class Circulo extends Desenho
{
public void desenho(Graphics g)
{
g.drawOval(10, 70, 40, 40);
}
}[/code]
E por fim, na classe Main, eu criei um JFrame, instanciei as classes Circulo e Retangulo e os adicionei ao frame:
add(circ.desenho(g)), add(rect.desenho(g)), mas só um dels aparece!
[code]import javax.swing.;
import java.awt.;
public class Main extends JFrame
{
Retangulo rect;
Circulo circ;
public Main()
{
rect = new Retangulo();
circ = new Circulo();
this.setSize(500, 500);
this.setVisible(true);
this.add(rect);
this.add(circ);
}
public static void main(String args[])
{
Main m = new Main();
}
}[/code]
Pensei em transformar a classe desenho em interface, mas não dá.
Alguém pode me ajudar?