猿问

我如何找到扩展类的方法在哪里

我仍在学习编码,但我找不到 paintComponent 方法的来源,想了解如何找到它的位置以供将来参考。


import java.awt.*;

import javax.swing.*;

public class Peach extends JPanel{

    public void paintComponent (Graphics g){



    }

}


心有法竹
浏览 105回答 2
2回答

慕妹3146593

该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();        }    }}

GCT1015

通常这样的问题可以通过查看文档来回答。如果您在类中看不到某个方法,它很可能是从父级继承的。您还可以从 IDE 内部打开类声明,您将能够找到该方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答