Java JButton已添加,但在运行时未显示

Java JButton已添加,但在运行时未显示,java,swing,button,jbutton,Java,Swing,Button,Jbutton,我正在用一本书来学习java。我已经创建了一个Swing窗口,但是当我尝试创建JButton时,它们在运行时不可见。我复制了原样的代码,但仍然不可见。代码如下: import javax.swing.*; class Buttons extends JFrame { JPanel pnl = new JPanel(); public Buttons() { super("Swing Window"); setSize(500,200);

我正在用一本书来学习java。我已经创建了一个Swing窗口,但是当我尝试创建JButton时,它们在运行时不可见。我复制了原样的代码,但仍然不可见。代码如下:

import javax.swing.*;
class Buttons extends JFrame
{
    JPanel pnl = new JPanel();
    public Buttons()
    {
        super("Swing Window");
        setSize(500,200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        add(pnl);
        setVisible(true);
        pnl.add(new JButton("Click Me"));
    }
    public static void main(String[] args)
    {
        Window gui = new Window();
    }
}
更改:

    setVisible(true);
    pnl.add(new JButton("Click Me"));
致:


将窗口更改为按钮,效果很好

import javax.swing.*;    

class Buttons extends JFrame
{
JPanel pnl = new JPanel();
public Buttons()
 {
    super("Swing Window");
    setSize(500,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    add(pnl);
    setVisible(true);
    pnl.add(new JButton("Click Me"));
}
public static void main(String[] args)
{
    Buttons gui = new Buttons();
}

}

“我正在用一本书来学习java。”如果上面的代码是一个结果,我认为这不是一本很好的书。。顺便说一句,
main(String[])
方法通常创建它所在类的实例。我希望这一个更像
buttonsgui=newbuttons();setVisible(true)。这本书实际上让我们用拼图来学习Java。比如:“类HelloWorld{publicstaticvoidmain(String[]args){}}”,然后它告诉我们在主方法括号之间插入这段代码:“System.out.println(“Hi”)”谢谢你,但对我来说有点复杂(12岁)。
import javax.swing.*;    

class Buttons extends JFrame
{
JPanel pnl = new JPanel();
public Buttons()
 {
    super("Swing Window");
    setSize(500,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    add(pnl);
    setVisible(true);
    pnl.add(new JButton("Click Me"));
}
public static void main(String[] args)
{
    Buttons gui = new Buttons();
}