我是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);
}...
答案 0 :(得分:3)
类Point
只是封装了x
和y
整数值。它不是从java.awt.Component
派生的,因此无法调用repaint
。
对于Swing中的自定义绘制扩展JComponent
或JPanel
并覆盖paintComponent
而不是paint
。请记得调用super.paintComponent(g)
。
答案 1 :(得分:2)
repaint()方法是java.awt.Component
的一部分。Point
不是java.awt.Component
的子类。你不能这样使用它。