我正在尝试使用从Applet类继承的类的教程。我很难掌握创建框架对象的线条的概念。我不确定2个getParent()调用的作用。

第一个getParent()调用是否引用StartingClass的父级Applet?
第二个getParent()调用是否引用Applet的父面板(Panel)?

我坚信我看错了并且正在寻求澄清。

public class StartingClass extends Applet implements Runnable {

    @Override
    public void init() {

        setSize(800, 480);
        setBackground(Color.BLACK);
        setFocusable(true);
        Frame frame = (Frame) this.getParent().getParent();
        frame.setTitle("Q-Bot Alpha");
    }

最佳答案

第一个getParent将返回sun.applet.AppletViewerPanel,第二个将返回sun.applet.AppletViewer

这是AppletViewer类的声明

public class sun.applet.AppletViewer extends java.awt.Frame ...


这就是为什么您可以将AppletViewer转换为Frame的原因。


我认为,您正在将getParent()方法与inheritence混合。在这里parent表示the parent container of this component不是组件的直接超类。


有关更多信息,请参见Component#getParent()

关于java - 了解Java小程序的getParent方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23093338/

10-13 06:08