1

Swing/JFrame の学習を始めたばかりで、基本的に GUI を作成しています。コンソールを使用して、罪/真または偽のゲームを作成するだけで、Javaを1か月間実行していますが、今では非常に簡単です。

私はさらに一歩踏み出すことにしましたが、それは完全に苦痛であり、別の論理であると言わざるを得ません。

それが私がこれまでに行ったことです:

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

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 に答える