Java 如果作为类添加,JPanel不会出现在JFrame上
我正在尝试将JButton添加到作为类创建的JPanel中,如下所示:Java 如果作为类添加,JPanel不会出现在JFrame上,java,swing,Java,Swing,我正在尝试将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
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
如何将在弹出窗口中创建的JPanel
添加到在Main
中创建的框架中?为什么要扩展Main(因为这似乎是创建JFrame的类)
如果要将按钮添加到面板,请扩展JPanel并将按钮添加到类(该类已经是JPanel,因此无需创建另一个JPanel):
为什么要扩展Main(因为它似乎是创建JFrame的类)
如果要将按钮添加到面板,请扩展JPanel并将按钮添加到类(该类已经是JPanel,因此无需创建另一个JPanel):
看起来问题还在于我在弹出窗口中添加了按钮。感谢您的快速回复!我会尽快接受这个答案让我们me@wanderer0810不,问题是创建的JPanel没有添加到JFrame中。它是刚刚创建的。同样,您的类Main不应该扩展JPanel。Main只是一个用于创建框架的类,因此它不需要扩展任何内容。只有在向类添加功能时才对其进行扩展。问题似乎还在于我将按钮添加到弹出窗口。感谢您的快速回复!我会尽快接受这个答案让我们me@wanderer0810不,问题是创建的JPanel没有添加到JFrame中。它是刚刚创建的。同样,您的类Main不应该扩展JPanel。Main只是一个用于创建框架的类,因此它不需要扩展任何内容。只在向类添加功能时才对其进行扩展。
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));
}
}