Java:在 JFrame/JPanel 中定位 JButton

标签 java swing jbutton layout-manager border-layout

您好,我让一些按钮彼此相邻对齐,但现在我希望它们位于面板/框架的底部。

我该怎么做?我考虑过 setalignment,但这似乎不起作用。

提前致谢:

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") {
        {
            setSize(150, 30);
            setMaximumSize(getSize());
        }
    };
    highscore = new JButton("Highscore") {
        {
            setSize(150, 30);
            setMaximumSize(getSize());
        }
    };
    help = new JButton("Help") {
        {
            setSize(150, 30);
            setMaximumSize(getSize());
        }
    };
    stoppen = new JButton("Stoppen") {
        {
            setSize(150, 30);
            setMaximumSize(getSize());
        }
    };

}

private void maakLayout() {

    JPanel hoofdmenu = new JPanel();
    hoofdmenu.setLayout(new BoxLayout(hoofdmenu, BoxLayout.X_AXIS));
    hoofdmenu.add(start);
    hoofdmenu.add(highscore);
    hoofdmenu.add(help);
    hoofdmenu.add(stoppen);
    super.add(hoofdmenu);


}

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

}

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

} enter image description here

最佳答案

一种常见的方法是制作一个带有 BorderLayout 的 LayoutManager 的 JPanel。您可以将面板(可以是子面板的集合)的所有内容放在 BorderLayout.CENTER 中,并将仅包含您的按钮的面板放在 BorderLayout.SOUTH 中。

参见:How to Use LayoutsHow To Use BorderLayout

关于Java:在 JFrame/JPanel 中定位 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15395896/

相关文章:

java - Swing JLayeredPane 未在调用 PaintAll 时绘制所有元素

java - JFrame 和 JPanel 居中

java - 事件处理 Swing 组件

java - JButton 在 Windows 上显示浅蓝色背景

java - Java 中的继承 : Extending another class when I've already extended one

java - 我所有的按钮点击方法在操作之前等待线程完成

java - 无法在 Eclipse 中启动 Tomcat 7.0

java - 如何使 TextInputLayout 的 float 标签加粗

java - 为什么我会收到此 ClassCastException?在 eclipse 上工作,但不在 IntelliJ 上工作

java - java中的Base64二进制数据类型