2012-03-11 34 views
0

我有幾個班,但我使用了這個問題的有Main.java和PaintA.java如何讓我的主類調用從另一個重繪?

PaintA已在

public void paint(Graphics g) 

我怎麼能告訴所有的油漆,顯然Main.java重新繪製,而沒有實際先繪製它? 在main.java中我將paintFile作爲我的對象。 試圖

paintFile.repaint(); /* doesn't work and neither will*/ 
paintFile.paint(g); 

,如果這個工程然後我可以重新繪製 但是沒有它我怎麼可能我會想到什麼?

如果有幫助,它擴展了主類

+0

IDK如果允許的,但..磕碰:( – JavaNewbie 2012-03-11 06:22:50

回答

0

這個問題是基本的,Main方法static,因此它可以調用埃夫裏在static contextmethod。如果您的repaint方法是static或者它的所有者類實例是靜態的,那麼main方法可以調用它。 樣品:

class PaintA 
{ 
    public void repaint(Graphics g) 
    { 
     /* 
     * do somthings 
     */ 
    } 
} 

則:

public class Main 
{ 
    private static PaintA paint = new PaintA(); 
    public static void main(String[] arg)throws Exception 
    { 
     paint.repaint(new Graphics()); 
    } 

} 
+0

Hmm.That解決一個問題仍然不工作,但:\ 它稱之爲罰款它不會顯示爲畫,我認爲重畫我必須先畫,不是嗎?我不能畫painter.paint(g); – JavaNewbie 2012-03-11 06:28:25

+0

你必須解釋更多 – MJM 2012-03-11 07:15:16

+0

我的意思是當我運行它來測試什麼都沒有顯示而是一個空白的屏幕,好像我根本沒有繪畫,但沒有發生任何錯誤(或顯示的任何錯誤) – JavaNewbie 2012-03-11 07:47:36