使JButton伸展以适应JPanel

时间:2014-04-07 17:13:49

标签: 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

1 个答案:

答案 0 :(得分:3)

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

对于在宽度方向上尽可能多地拉伸的多个按钮,将容器放在北方位置而不是单个按钮,其中该容器包含多个JButton。该容器可能应该是一个带有GridLayout,1列的JPanel,和你有按钮一样多的行。