2015-01-03 83 views
0

我走遍了各個論壇,發現了一個類似於我的問題,但並沒有回答我即將問到的問題。我如何閱讀Javadocs?

public class DrawSomething extends JPanel { 
 

 
    public void paintComponent(Graphics g); //how is an object passed in that parameter? 
 
    super.paintComponent(g); //I don't get how that works 
 
    this.setBackground(Color.white);

我再次失去了以上面的代碼怎麼給汲取JPanel的東西的功能。

回答

1
public void paintComponent(Graphics g); 

上面的代碼行應該是你重寫的方法。所以它不應該以分號結尾。但我會聳聳肩。我會盡量讓這個儘可能簡單。在你的程序中,你創建一個JPanel,並將它添加到一個JFrame中。 JFrame會知道你已經添加了一個JPanel。編寫JFrame的程序員將知道JPanel有一個paintComponent方法,並將調用它並傳入Graphics對象。而且,既然它正在調用一個你已經覆蓋的方法,它將會運行你有的任何代碼。

super.paintComponent(g); 

當你重寫代碼,你刪除任何在那裏之前,並把你的新代碼這意味着所有的舊代碼消失了,但是當你調用super.paintComponent方法(G)。你基本上是說,運行舊的代碼和我的代碼。

您應該掌握OOP概念以及對象及其方法與海誓山盟互動的方式。瞭解如何開發應用程序將使您更容易使用他人的代碼。你可以開始here

0

類DrawSomething將定義方法paintComponent。在類DrawSomething的對象上調用paintComponent將執行該方法。你還沒有定義你的方法,但是如果你這樣做了,那麼該方法的代碼就會運行。

關鍵字「super」允許您引用父類的方法,在本例中爲JPanel。當你想要擴展一個父類的方法時,這很有用:讓它做同樣的事情和額外的東西。請注意,您不能直接在類定義中使用此方法,您必須將其放入方法中。