0

Applet クラスを継承するクラスを使用するチュートリアルを試しています。フレームオブジェクトを作成する線の概念を理解するのに苦労しています。2 つの getParent() 呼び出しが何をするのかわかりません。

最初の getParent() 呼び出しは、アプレットである StartingClass の親を参照していますか? 2 番目の getParent() 呼び出しは、パネルであるアプレットの親を参照していますか?

私はそれを間違って見ていると真剣に信じており、明確化を求めています。

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");
    }
4

1 に答える 1

1

1 つ目getParentは戻りsun.applet.AppletViewerPanel、2 つ目は戻り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()をご覧ください。

于 2014-04-15T20:06:58.503 に答える