0

我是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);

}...
4

2 回答 2

3

该类Point简单地封装了一个xy数值。它不是派生自java.awt.Component因此repaint不能被调用。

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

请参阅:执行自定义绘画

于 2013-05-12T19:46:18.470 回答
2

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

于 2013-05-12T19:48:59.110 回答