2013-05-12 87 views
0

我是java新手。我想在java中創建一個抽象工廠。我有一個類point,我想從其中擴展其他類(circle, rectangle)。Java:repaint在類中未定義

這是我的代碼。它說,重繪是不確定的..

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

}... 

回答

3

Point簡單地封裝了一個xy整數值。它不是從java.awt.Component派生的,因此repaint不能被調用。

對於Swing中的自定義繪畫擴展JComponentJPanel並覆蓋paintComponent而不是paint。請記住調用super.paintComponent(g)

參見:Performing Custom Painting

2
repaint()

方法是java.awt.Component一部分。 Point不是java.awt.Component的子類。你不能那樣使用它。

+0

@downvoter,爲什麼? – Maroun 2013-05-13 12:43:22