2 回答

TA貢獻1820條經驗 獲得超9個贊
該paintComponent
方法實際上來自抽象類JComponent
,它由類擴展,而類又是您要擴展的JPanel
類。
的實際實現paintComponent
是:
/**
?* Calls the UI delegate's paint method, if the UI delegate
?* is non-<code>null</code>.? We pass the delegate a copy of the
?* <code>Graphics</code> object to protect the rest of the
?* paint code from irrevocable changes
?* (for example, <code>Graphics.translate</code>).
?* <p>
?* If you override this in a subclass you should not make permanent
?* changes to the passed in <code>Graphics</code>. For example, you
?* should not alter the clip <code>Rectangle</code> or modify the
?* transform. If you need to do these operations you may find it
?* easier to create a new <code>Graphics</code> from the passed in
?* <code>Graphics</code> and manipulate it. Further, if you do not
?* invoker super's implementation you must honor the opaque property,
?* that is
?* if this component is opaque, you must completely fill in the background
?* in a non-opaque color. If you do not honor the opaque property you
?* will likely see visual artifacts.
?* <p>
?* The passed in <code>Graphics</code> object might
?* have a transform other than the identify transform
?* installed on it.? In this case, you might get
?* unexpected results if you cumulatively apply
?* another transform.
?*
?* @param g the <code>Graphics</code> object to protect
?* @see #paint
?* @see ComponentUI
?*/
protected void paintComponent(Graphics g) {
? ? if (ui != null) {
? ? ? ? Graphics scratchGraphics = (g == null) ? null : g.create();
? ? ? ? try {
? ? ? ? ? ? ui.update(scratchGraphics, this);
? ? ? ? }
? ? ? ? finally {
? ? ? ? ? ? scratchGraphics.dispose();
? ? ? ? }
? ? }
}

TA貢獻1827條經驗 獲得超4個贊
通常這樣的問題可以通過查看文檔來回答。如果您在類中看不到某個方法,它很可能是從父級繼承的。
您還可以從 IDE 內部打開類聲明,您將能夠找到該方法。
添加回答
舉報