Java将JPanel区域放在JPanel水平和放大器的中间区域。垂直

时间:2014-07-25 15:08:38

标签: java swing user-interface

您好我有一个JPanel,其中包含许多组件。现在我有一个JPanel组件,其中包含一些输入形式,该组件的大小为400x400像素。

我需要将此组件置于JPanel组件的中心位置,水平和垂直保持它,因此400x400 px组件将位于中心。

我可以简单地setLayout(null);来禁用布局,然后执行:

component.setLocation( ( width / 2) - 400, (height / 2) - 400);

但这是IMO的一个不好的做法,应该使用布局管理器来完成。

我已经厌倦了BorderLayout使用BorderLayout.CENTER,但它只是使组件在全屏上,而不是400x400区域。

我已经尝试过使用Box.createHorizo​​ntalBox使用BoxLayout,但似乎它只支持水平或垂直,一次一个,如果我错了,请纠正我。

是否有一种简单的方法可以使用布局管理器将组件置于组件中心而不会丢失组件的大小?

@Override
public void init() throws Exception {
    GridBagLayout layout = new GridBagLayout();
    super.setLayout(layout);
    this.loginPane = new JPanel();
    this.loginPane.setSize(400, 400);
    this.loginPane.setBackground(Color.RED);
    JTextField username = new JTextField();
    username.setSize(200, 45);

    super.add(loginPane, null);
}

显示:

img http://gyazo.com/2d0f51769b7f335d2cc6534a37623c7d.png

0 个答案:

没有答案