Desenhando linhas, retangulos e ovais (Deitel)

2 respostas
oitathi

Gente, tô seguindo um exemplo bem básico do deitel pra desenhar no java. Soh q não tah aparevendo nada no meu JFrame e o código está igualzinho ao livro. Alguém sabe o pq?

public class Image extends JPanel{
    
    public void paintCpmponent(Graphics g){
        super.paintComponent(g);
        this.setBackground(Color.WHITE);

        g.setColor(Color.RED);
        g.drawLine(5,30, 380,30);
        
        g.setColor(Color.BLUE);
        g.drawRect(5, 40, 90, 55);
        g.fillRect(100, 40, 90, 55);
        
        g.setColor(Color.CYAN);
        g.fillRoundRect(195, 40, 90, 55, 50, 50);
        g.drawRoundRect(290, 40, 90, 55, 20, 20);
        
        g.setColor(Color.GREEN);
        g.draw3DRect(5, 100, 90, 55, true);
        g.fill3DRect(100, 100, 90, 55, false);
        
        g.setColor(Color.MAGENTA);
        g.drawOval(195, 100, 90, 55);
        g.fillOval(290, 100, 90, 55);
    }// end metodo

 public static void main(String[] args) {
        JFrame frame;
        frame= new JFrame("Desenhando linhas, retangulos e ovais");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Image image = new Image();
        image.setBackground(Color.WHITE);
        frame.add(image);
        frame.setSize(400,210);
        frame.setVisible(true);
    }// fim main
}//fim classe

Obrigada!!

2 Respostas

Tchello

Por que o método paintComponent deve ser uma sobrescrita do paintComponent do JPanel e você escreveu o nome do método errado.
Ele esta paintCpmponent e o correto seria paintComponent

Sugiro bons estudos sobre overriding, overloading e logo em seguida anotação @Override, será de grande ajuda e evitará muitos problemas como esse no futuro.

oitathi

Poxa, obrigada!!!

Criado 17 de agosto de 2010
Ultima resposta 17 de ago. de 2010
Respostas 2
Participantes 2