如果作为类添加,java JPanel不会显示在JFrame上
我正在尝试将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));
}
}
梅因。爪哇:
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
中创建的帧中
# 1 楼答案
为什么要扩展Main(因为它似乎是创建JFrame的类)
如果你想在面板上添加一个按钮,那么扩展JPanel并将你的按钮添加到你的类中(这个类已经是JPanel了,所以不需要创建另一个JPanel):