gpt4 book ai didi

java - 如果作为类添加,JPanel 不会显示在 JFrame 上

转载 作者:行者123 更新时间:2023-12-02 02:21:24 25 4
gpt4 key购买 nike

我正在尝试将 JButton 添加到我作为类创建的 JPanel,如下所示:

public class Popup extends Main {

public Popup() {
JPanel popup = new JPanel();
JButton button = new JButton("SUPER COOL BUTTON");
popup.add(button);
popup.setPreferredSize(new Dimension(50,50));
}
}

Main.java:

private void createFrame() {

JFrame frame = new JFrame("TEAM PROJECT");

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(new Popup(), BorderLayout.CENTER);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

当我这样做时,框架会创建,但里面什么也没有。当尝试使用 paintComponent 在面板上绘制时,类似的代码可以工作,那么问题是您无法以这种方式添加 SwingComponents 吗?

如何才能将 Popup 中创建的 JPanel 添加到 Main 中创建的框架中?

最佳答案

为什么要扩展 Main(因为它似乎是您创建 JFrame 的类)?

如果您想向面板添加按钮,请扩展 JPanel 并将按钮添加到您的类(它已经是一个 JPanel,因此无需创建另一个 JPanel):

public class Popup extends JPanel {

public Popup() {
//JPanel popup = new JPanel();
JButton button = new JButton("SUPER COOL BUTTON");
add( button );
//popup.add(button);
//popup.setPreferredSize(new Dimension(50,50));
}
}

关于java - 如果作为类添加,JPanel 不会显示在 JFrame 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48446695/

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