我正在尝试为游戏制作菜单屏幕。我添加了两个按钮,播放和退出,我正在尝试弄清楚如何调整它们的大小。当我运行我的代码时,按钮的大小几乎完全相同(因为文本不同,我想象的不同)。我正在使用BoxLayout作为我的按钮,我只是在这里阅读Why will BoxLayout not allow me to change the width of a JButton but let me change the height?为什么它只会调整宽度或高度,但它现在也没有调整大小。在我的代码中我使用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();
}
}
答案 0 :(得分:1)
尝试使用setMaximumSize()方法
exit.setMaximumSize(new Dimension(100,100));
或尝试使用BorderLayout
代替BoxLayout