java swing对齐单选按钮

问题描述

| 我想将单选按钮居中放置在面板中,但是当我将其居中放置时,它会根据按钮文本的长度居中放置,因此,是的,它们居中放置但彼此不对齐并且看上去非常难看。如何修复我的代码
radioButtonMenuPanel = new JPanel();
    radioButtonMenuPanel.setLayout(new BoxLayout(radioButtonMenuPanel,BoxLayout.PAGE_AXIS));

    ButtonGroup group = new ButtonGroup();
    for (String item : answerItems) {
        JRadioButton radioButton = new JRadioButton(item);
        radioButton.setAlignmentX(Component.Center_ALIGNMENT);
        radioButtonMenuPanel.add(radioButton);
        group.add(radioButton);
    }
    

解决方法

您可以始终使用GridBagLayout。通过使用该布局,您可以将组件锚定在单元格任何一侧的网格中。
radioButtonMenuPanel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = GridBagConstraints.RELATIVE;
gbc.anchor = GridBagConstraints.WEST;

ButtonGroup group = new ButtonGroup();
for (String item : answerItems) {
    JRadioButton radioButton = new JRadioButton(item);
    group.add(radioButton);
    radioButtonMenuPanel.add(radioButton,gbc);
}
这样的事情应该起作用。默认情况下,“ѭ2”将组件在屏幕上的小网格中居中。在这种情况下,我们只是将组件固定在单元格中的西部,该组件将被放置在第一列(gridx = 0)中,并且对于每个单选按钮,它将定位在最后一个组件旁边。 希望能有所帮助!     ,左对齐按钮到一个单独的面板,然后将该面板居中放置到另一个面板上,该如何做?