在JPanel中居中JCheckBox

时间:2011-01-20 21:22:18

标签: java swing layout jframe jpanel

我需要在NORTH中添加一个标签,在CENTER中添加3个CheckBox,在南方添加3个按钮。

所以我创建了2个JPanels(Principal和Inside_P)

private JPanel Principal, Inside_P;
private JLabel Title;
private JCheckBox in, dou, flo;
private JButton End;

Title= new JLabel("Conversion", JLabel.CENTER);     // Works (Center the Label in the middle of North)
in = new JCheckBox("Integer", JCheckBox.CENTER);     // Can't work (I don't know)
dou = new JCheckBox("Double");
flo = new JCheckBox("Float");


Principal= new JPanel();
Inside_P = new JPanel();

Principal.setLayout(new BorderLayout());
Inside_P.setLayout(new BorderLayout());

Principal.add(Titre, BorderLayout.NORTH);
Principal.add(Inside, BorderLayout.CENTER);

Inside_P.add(in, BorderLayout.WEST);
Inside_P.add(dou, BorderLayout.CENTER);
Inside_P.add(flo, BorderLayout.EAST);

    Principal.add(End, BorderLayout.SOUTH);

我需要她的是如何将3 CheckBox置于市政中心的CENTER中间?

2 个答案:

答案 0 :(得分:1)

如果您希望将它们组合在一起,请让Inside_P JPanel保留它的默认FlowLayout管理器。如果添加它们,它们将在中心对齐。它们将居中,但它们位于Inside_P JPanel的顶部。

在将JCheckboxe添加到Inside_P容器之前

尝试添加Box spacer:

Inside_P.add( Box.createVerticalGlue() );
Inside_P.add( Box.createVerticalStrut( 160 ) );
Inside_P.add(in);
Inside_P.add(dou);
Inside_P.add(flo);

如果用户决定调整窗口大小,则复选框不会垂直停留在中心。

答案 1 :(得分:0)

执行相同的操作 - 让您的Principal JPanel使用BorderLayout,并将第三个复选框放在中心。