2011-01-20 60 views
1

我需要在NORTH中添加一個標籤,在CENTER中添加3個複選框,在SOUTH中添加3個按鈕。在JPanel中居中一個JCheckBox

所以我創建了2個JPanels(校長和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複選框在了校長JPanel的中心的中央?

+3

請爲您的變量學習適當的Java命名約定。我讀過的每本教科書或教程都會使用它們,所以不要自己編寫。另外,你是什麼意思的中心?您是否嘗試將組件垂直或水平居中?請明確點。最後,發佈一個證明問題的SSCCE(http://sscce.org),以便我們更好地理解問題。 – camickr 2011-01-20 21:30:59

回答

1

如果您希望將它們組合在一起,請讓Inside_P JPanel保留它的默認FlowLayout管理器。如果添加它們,它們將在中心對齊。他們將被集中,但他們在Inside_P JPanel的頂部。

之前,你把你的JCheckboxe的到Inside_P容器,

嘗試添加盒間隔:

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

如果用戶決定調整窗口大小,複選框不會留在中心上下。

+0

非常感謝我的朋友。 – VisaMasterCard 2011-01-20 22:07:09

0

做同樣的事情 - 讓您的Principal JPanel使用BorderLayout,並將第三個複選框放在中間。