[英]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.