我想把我的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);
}
答案 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)
如何将按钮左对齐到单独的面板,然后将该面板居中到其他面板。