问题在于组件的居中布局,GridBagLayout总是“坐在” JPanel的中心,所以我不在乎它将如何在内部布局组件,我的问题是这些组件将开始在面板上布局。

我尝试了:

panel.setAlignmentX( JPanel.LEFT_ALIGNMENT );

但这并没有帮助。

任何想法?

最佳答案

您需要添加至少一个填充水平空间的组件。如果您没有这样的组件,则可以尝试以下操作:

GridBagConstraints noFill = new GridBagConstraints();
noFill.anchor = GridBagConstraints.WEST;
noFill.fill = GridBagConstraints.NONE;

GridBagConstraints horizontalFill = new GridBagConstraints();
horizontalFill.anchor = GridBagConstraints.WEST;
horizontalFill.fill = GridBagConstraints.HORIZONTAL;

panel.add(new JLabel("Left Aligned"), noFill);
panel.add(Box.createHorizontalGlue(), horizontalFill);

10-06 08:58