Java:repaint在类中是未定义的

时间:2013-05-12 19:43:49

标签: java swing paint repaint jcomponent

我是java新手。我想在java中创建一个抽象工厂。我有一个类point,我希望从中扩展其他类(circle, rectangle)。

这是我的代码。它说重绘是不明确的..

import javax.swing.*;
import java.awt.*;
import java.awt.Component;
import javax.swing.*;


public class Circle extends Point {

public void Draw() {
    repaint();
}

public void paint(Graphics g) {       

    g.drawOval(this.x, this.y, 10, 10);

}...

2 个答案:

答案 0 :(得分:3)

Point只是封装了xy整数值。它不是从java.awt.Component派生的,因此无法调用repaint

对于Swing中的自定义绘制扩展JComponentJPanel并覆盖paintComponent而不是paint。请记得调用super.paintComponent(g)

请参阅:Performing Custom Painting

答案 1 :(得分:2)

repaint()方法是java.awt.Component的一部分。Point不是java.awt.Component的子类。你不能这样使用它。