使用BoxLayout布局管理器代替默认的FlowLayout布局管理器,并在添加按钮之前设置组件垂直对齐方式和间距。示例代码如下:
import javax.swing.*;
import java.awt.*;
public class ButtonGroupTest extends JFrame {
public ButtonGroupTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JRadioButton btn1 = new JRadioButton("Button 1");
JRadioButton btn2 = new JRadioButton("Button 2");
JRadioButton btn3 = new JRadioButton("Button 3");
JRadioButton btn4 = new JRadioButton("Button 4");
JRadioButton btn5 = new JRadioButton("Button 5");
// 创建一个垂直方向的BoxLayout布局管理器
BoxLayout layout = new BoxLayout(getContentPane(), BoxLayout.Y_AXIS);
getContentPane().setLayout(layout);
// 按钮之间的垂直间距为20px
getContentPane().add(Box.createVerticalStrut(20));
// 设置组件对齐方式为左对齐
JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
panel.add(btn1);
panel.add(btn2);
getContentPane().add(panel);
getContentPane().add(Box.createVerticalStrut(20));
// 设置组件对齐方式为右对齐
panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel.add(btn3);
panel.add(btn4);
getContentPane().add(panel);
getContentPane().add(Box.createVerticalStrut(20));
// 设置组件对齐方式为居中对齐
panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
panel.add(btn5);
getContentPane().add(panel);
pack();
setVisible(true);
}
public static void main(String[] args) {
new ButtonGroupTest();
}
}