簡體   English   中英

兩個類之間的java.lang.StackOverflowError

[英]java.lang.StackOverflowError between two classes

我正在嘗試在一個類中創建一個JFrame並在我的主類中添加一個JPanel,這是不可能的?

這是我的主課

public class Main {

    JPanel p;
    JLabel lbl1;

    public static void main(String[] args) {
        new Main();
    }

    Main() {

        new Window();

        JPanel p = new JPanel();
        JLabel lbl1 = new JLabel("Hello");
        p.add(lbl1);
    }

}

而Window類


public class Window extends Main {
    Window() {
        JFrame frame = new JFrame();
        frame.setSize(400, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.add(p);
    }

}

我在線程“main”java.lang.StackOverflowError中得到異常

您的Window類擴展了Main。 當您調用子類的構造函數時,首先調用父類的構造函數。

在您的情況下,您在Main構造函數中調用Window構造函數。 由於繼承,Window構造函數調用Main構造函數,導致StackOverflow:每個構造函數調用另一個構造函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM