在BoxLayout中调整JButton的大小

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();
}
}
3个回答

3
作为一个例子,如果要改变“开始”按钮的大小,需要修改以下代码:
    start1 = new JButton("Start");

为了

    start1 = new JButton("Start") {
        {
            setSize(150, 75);
            setMaximumSize(getSize());
        }
    };

1
问题在于JFrames默认使用边框布局(BorderLayout),这意味着您的JPanel将自然填充空间。
在添加JPanel之前,请调用以下代码将JFrame的布局更改为null,并使用JPanel的设置。
this.setLayout(null);
JPanel hoofdmenu = new JPanel();
hoofdmenu.setBounds(0,0, 400, 100);

或者,您可以设置JButtons的最大大小

Dimension maxSize = new Dimension(100, 100);
start.setMaximumSize(maxSize);
highscore.setMaximumSize(maxSize);
help.setMaximumSize(maxSize);
stoppen.setMaximumSize(maxSize);

0
这是另一个例子,紧随前两个之后 - 我正在制作一个声音板程序,这实际上是其中的一个示例 - 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);

啊,还有一件事 - 你在第二段代码的不同块中创建了按钮。这样做会导致其他块看不到它。你需要在块外声明它们,以便所有块都能看到它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接