0

ゲームのメニュー画面を作ろうとしています。再生と終了の 2 つのボタンを追加しましたが、現在、それらのサイズを変更する方法を見つけようとしています。コードを実行すると、ボタンはほぼ同じサイズです (テキストのために想像すると異なります)。ボタンに BoxLayout を使用していますが、ここで読んだのはなぜ BoxLayout で JButton の幅を変更できないのに、高さを変更できるのですか? 幅または高さのみをサイズ変更するのはなぜですが、現在はサイズ変更していません。私のコードでは BoxLayout.PAGE_AXIS を使用していますが、それが違いを生むかどうかはわかりませんが、BoxLayout.Y_AXIS でも垂直方向にサイズ変更されませんでした。

これが私のコードです:

public class Stage extends JFrame {
/* PRIVATE */
private JButton play, exit;

// Setup the Menu screen.
private void createMenuScreen() {
    Container window = getContentPane();
    // window.setBackground(Color.BLACK);
    JPanel menuScreen = new JPanel();
    menuScreen.setLayout(new BoxLayout(menuScreen, BoxLayout.PAGE_AXIS));
    window.add(menuScreen, "Center");

    play = new JButton("Play");
    play.setPreferredSize(new Dimension(20, 20));
    play.setAlignmentX(Component.CENTER_ALIGNMENT);



    exit = new JButton("Exit");
    exit.setPreferredSize(new Dimension(100, 100));
    exit.setAlignmentX(Component.CENTER_ALIGNMENT);
    menuScreen.add(play);
    menuScreen.add(exit);
}

/* PUBLIC */
public Stage() {
    // Setup the frame.
    setSize(224, 288);
    setLocationRelativeTo(null); // Centers the window.
    setUndecorated(true); // Removes the Windows border.
    setVisible(true);

    createMenuScreen();
}
}
4

1 に答える 1

1

setMaximumSize() メソッドを使用してみてください

exit.setMaximumSize(new Dimension(100,100));

または BorderLayout代わりに使用してみてくださいBoxLayout

于 2013-04-23T19:23:01.550 に答える