如何使用元素的中心在 BoxLayout 中居中元素?

2022-09-01 03:48:28

我使用,然后添加元素(例如JLabels,JButtons)到.例如:。outputPanel.setLayout(new BoxLayout(outputPanel, BoxLayout.Y_AXIS));outputPaneloutputPanel.add(submitButton);

我看到所有添加的元素都是“居中”的。这很好,因为我确实希望我的元素处于中心位置。当我写“中心”时,我的意思是“与左右的距离相等”。但问题是元素的左侧部分被放入中心。我希望有元素的中心 被放到中心。如何获得此行为?


答案 1

可以使用 .它适用于 和 。myLabel.setAlignmentX(Component.CENTER_ALIGNMENT);JLabelJButtonJRadioButton


答案 2

到目前为止,我遇到过的适用于种类型的组件的最佳方法:
1.创建一个新的JPanel

JPanel helperPanel = new JPanel();

2.添加您希望水平


居中的组件(在本例中):3.将面板添加到原始面板(带有BoxLayout的面板):

就是这样!如果您不希望 的 BoxLayout 展开它,也可以在 上设置最大大小
如果你想知道为什么这有效:JPanel的隐式布局管理器是FlowLayout,它会自动将你的元素居中。submitButtonhelperPanel.add(submitButton);outerPanel.add(helperPanel);helperPanelouterPanel