java - 使 JButton 拉伸(stretch)以适合 JPanel

标签 java swing user-interface jpanel jbutton

我正在尝试让我的按钮填满面板的宽度,这是我的代码 制作一个按钮和一个面板,然后将按钮添加到面板。

buttonPane = makeButtonPanel();
button = makeButton("Hello"); 
button2 = makeButton("World");
buttonPane.add(button);
buttonPane.add(button2);

private JButton makeButton(String msg){
    JButton button = new JButton(msg);
    button.setAlignmentX(Component.CENTER_ALIGNMENT); 
    return button;
}

private JPanel makeButtonPanel(){
    JPanel btnPanel = new JPanel();
    btnPanel.setLayout(new BoxLayout(btnPanel, BoxLayout.Y_AXIS));
    btnPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    return btnPanel;
}

这是我得到的输出...

enter image description here

最佳答案

按钮如何适合它的容器取决于容器的布局。如果你想让它拉伸(stretch),你可以让按钮面板有一个 BorderLayout 并将按钮添加到北位置,或者使用任何其他布局类型,其组件试图占据尽可能多的空间(BorderLayout with north is仅举一例)。

对于尽可能横向拉伸(stretch)的多个按钮,请将容器放在北位置而不是单个按钮,其中该容器包含多个 JButton。该容器可能应该是一个带有 GridLayout 的 JPanel,1 列,行数与按钮一样多。

关于java - 使 JButton 拉伸(stretch)以适合 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918890/

相关文章:

c# - 创建更像 Visual Studio 的 UI 框架

java - 如何使 Java GUI 全屏显示并类似于 Playstation 3

java - 使用具有特定路由键的消息?

java - 集合中的老化对象

java - Java 中 NxN 矩阵的所有可能排列

java - 使用 Java Swing 使多个 `JPanel` 的颜色一一改变,而不是全部改变

java - 如何在使用 ActionListener 按钮和 GUI 时将项目添加到数组列表?

java - ImageView 中的图像被拉伸(stretch) - Android

java - 如何显示所有卡片布局

java - 如何在 JPanel 中显示的矩形区域内的图像上写入文本