设置JPanel左上角的布局而不是中心

时间:2016-03-24 12:46:06

标签: java swing jpanel

假设我在JPanel中有一个GridLayout,如果我的布局不是很大,需要填充整个JPanel,它会自动将它对齐在JPanel的中心,如:
enter image description here

但是我想让我的布局在JPanel的左上角对齐,如:
enter image description here

所以我的组件将从面板的左上角开始,有什么方法可以做到吗?

2 个答案:

答案 0 :(得分:0)

将gridLayoutPanel添加到另一个面板,即subPanel。将此子面板布局设置为类似subPanel.setLayout(new FlowLayout(FlowLayout.LEFT))的流布局。然后将主面板的布局设置为BorderLayout。并将子面板面板添加到主面板的NORTH位置。

示例代码:

JPanel subPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
subPanel.add(gridLayoutPanel);

mainPanel.setLayout(new BorderLayout());
mainPanel.add(subPanel, BorderLayout.NORTH);

答案 1 :(得分:0)

  

它将自动对齐JPanel的中心,如:

听起来你在主面板上使用了GridBagLayout,这是默认行为,除非你使用GridBagConstraints来控制这种行为。

阅读关于如何使用GridBagLayout的Swing教程中的部分,尤其是关于使用weightx / y约束的部分。正确设置这些约束将阻止面板居中。