gpt4 book ai didi

两个类之间的java.lang.StackOverflowError

转载 作者:行者123 更新时间:2023-11-29 04:10:09 26 4
gpt4 key购买 nike

我试图在一个类中创建一个 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);
}

}

和窗口类


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:每个构造函数调用另一个构造函数

关于两个类之间的java.lang.StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55497618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com