1

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

我决定更进一步,我必须说这完全是一种痛苦,不同的逻辑。

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

主.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();
            }
         });
    }
}

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"));

    }
}

问题

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

基本上会打开一个 500x400 绿色的 GUI,仅此而已。

为什么按钮不显示?

4

1 回答 1

6

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

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

于 2013-08-12T09:44:03.510 回答