3

ゲーム用のシンプルなメニューを作ろうとしています。中央に4つのボタンがあり、少し大きくして中央に配置したいと思います。

JButtons最後の部分は機能しましたが、自分のいずれにも電話をかけたり、.setSize/を実行したりすることができないようです.setPreferedSize(new Dimension())

public class mainMenu extends JFrame {
private JButton start, highscore, help, stoppen;


public mainMenu() {
    super("Master Mind");
    maakComponenten();
    maakLayout();
    toonFrame();
}

private void maakComponenten() {
    start = new JButton("Start");
    start.setBackground(Color.gray);
    highscore = new JButton("Higscores");
    help = new JButton("Help");
    stoppen = new JButton("Stoppen");
}

private void maakLayout() {
    JPanel hoofdmenu = new JPanel();
    hoofdmenu.setLayout(new BoxLayout(hoofdmenu, BoxLayout.Y_AXIS ));
    hoofdmenu.add(start);
    start.setAlignmentX(CENTER_ALIGNMENT);
    hoofdmenu.add(highscore);
    highscore.setAlignmentX(CENTER_ALIGNMENT);
    hoofdmenu.add(help);
    help.setAlignmentX(CENTER_ALIGNMENT);
    hoofdmenu.add(stoppen);
    stoppen.setAlignmentX(CENTER_ALIGNMENT);
    super.add(hoofdmenu);
}

private void toonFrame() {
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setVisible(true);
    setSize(500,500);

}

public static void main(String[] args) {
    new mainMenu();
}
}
4

3 に答える 3

3

例として、「スタート」ボタンのサイズを変更するには、

変化する :

    start1 = new JButton("Start");

    start1 = new JButton("Start") {
        {
            setSize(150, 75);
            setMaximumSize(getSize());
        }
    };
于 2013-03-13T20:00:47.183 に答える
1

問題は、JFrameがデフォルトでBorderLayoutを使用することです。これは、JPanelが自然にスペースを埋めることを意味します。

JPanelを追加する前に、次のコードを呼び出してJFrameのレイアウトをnullに変更し、代わりにJPanelの設定を使用してください。

this.setLayout(null);
JPanel hoofdmenu = new JPanel();
hoofdmenu.setBounds(0,0, 400, 100);

または、JButtonの最大サイズを設定することもできます

Dimension maxSize = new Dimension(100, 100);
start.setMaximumSize(maxSize);
highscore.setMaximumSize(maxSize);
help.setMaximumSize(maxSize);
stoppen.setMaximumSize(maxSize);
于 2013-03-13T19:46:07.297 に答える
0

前の 2 つに続く別の例を次に示します。私はサウンドボード プログラムを作成しています。これは実際にはそのサンプルです。2 番目の投稿に同意して、JPanel が実際に必要です。

    JFrame frame = new JFrame();
    JPanel menuPanel = new JPanel();
    JButton Button1 = new JButton("<BUTTON NAME 1>");
    Button1.setSize(80, 30);
    Button1.setLocation(4, 4);
    JButton Button2 = new JButton("<BUTTON NAME 2>");
    Button2.setSize(80, 30);
    Button2.setLocation(90, 4);

ああ、もう 1 つ - コードの 2 番目の部分とは別のブロックでボタンを作成しました。これを行うと、他のブロックから見えなくなります。すべてのブロックがそれらを見ることができるように、ブロックの外でそれらを宣言する必要があります。

于 2014-09-11T14:43:35.560 に答える