Java JFrame gui - 为什么按钮不显示?

Jun*_*ded 1 java user-interface swing

我刚刚开始学习Swing/JFrame,基本上是一个GUI.我一直在做Java一个月,只是使用控制台,制作一个罪恶/真假游戏,现在对我来说很容易.

我决定采取进一步措施,我必须说这完全是一种痛苦,不同的逻辑.

这就是我到目前为止所做的事情:

Main.java:

import java.awt.*;
import javax.swing.*;
import java.io.*;

class Main {
    public static void main(String[] args) {
        final Gui gui = new Gui();
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                gui.createMyGui();
            }
         });
    }
}
Run Code Online (Sandbox Code Playgroud)

gui.java

class Gui {

    protected JFrame j = new JFrame("My First window");
    protected JPanel p = new JPanel();
    protected Container c;

    public Gui() {
        j.setSize(500, 400);
        p.setSize(j.getSize());
        this.c = j.getContentPane();
    }

    public void createMyGui() {
        setButtons();
        setGuiBackground();
        j.setVisible(true);
        p.setVisible(true);
        this.c.add(p);
    }

    private void setGuiBackground() {
        this.c.setBackground(Color.green);
    }

    private void setButtons() {
        p.add(new JButton("Hey"));

    }
}
Run Code Online (Sandbox Code Playgroud)

问题

我无法让按钮显示,人们告诉我使用setBounds但我不确定如何启动,因为我甚至无法在那里放置按钮.我试过搜索我的问题,但实际上没有运气.

基本上会发生500x400绿色GUI打开,就是这样.

按钮为什么不显示?

小智 6

人们告诉我使用setBounds 不要!布局管理器是正确的方法.

您的问题是您将按钮添加到"p"面板,但您从未将它(p面板)添加到contentPane