java swing对齐单选按钮

时间:2011-05-23 13:51:34

标签: java swing radio-button alignment jpanel

我想把我的radibutton放在面板中心,但当我居中时,它根据按钮文字的长度居中,所以是的,它们居中但没有相互对齐,看起来非常难看。我该如何修复我的代码?

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);
    }

2 个答案:

答案 0 :(得分:5)

您始终可以使用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);
}

这样的事情应该有用。默认情况下,GridBagLayout将组件放在屏幕中的小网格中。在这种情况下,我们只是将单元格中的组件锚定到西方,其中组件将放置在第一列(gridx = 0)中,对于每个单选按钮,它将它放在最后一个组件旁边。

希望有所帮助!

答案 1 :(得分:1)

如何将按钮左对齐到单独的面板,然后将该面板居中到其他面板。