Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果作为类添加,JPanel不会出现在JFrame上_Java_Swing - Fatal编程技术网

Java 如果作为类添加,JPanel不会出现在JFrame上

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

我正在尝试将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

如何将在
弹出窗口中创建的
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));
    }
}