2016-04-29 37 views
1

下面的代碼將標籤添加到面板的左側,當我使用帶有標籤的設置位置時,位置不會改變。有沒有辦法讓標籤位於面板的中心而不需要額外的面板?將標籤添加到面板的中心以南?

編輯:JFrame中有一個BorderLayout的,並增加了面板CENTER

JPanel pnl = new JPanel(); 
pnl.setPreferredSize(new Dimension(500,500)); 
JLabel lbl = new JLabel("label"); 
pnl.setLayout(new BorderLayout()); 
pnl.add(lbl, BorderLayout.SOUTH); 
+0

正是你得到了什麼?你爲JFrame設置了佈局嗎? –

+1

[當您確實想要重寫'getPreferredSize()'](http://stackoverflow.com/q/7229226/230513)時,不要使用'setPreferredSize()'。 – trashgod

回答

2

這似乎需要設置標籤的文本對齊到中央面板? 如果是的話,試試這個:

JPanel pnl = new JPanel(); 
pnl.setPreferredSize(new Dimension(500, 500)); 
JLabel lbl = new JLabel("label", SwingConstants.CENTER); //Set text align 
pnl.setLayout(new BorderLayout()); 
pnl.add(lbl, BorderLayout.SOUTH); 
lbl.setBackground(Color.red); 
lbl.setOpaque(true); //Test background 
getContentPane().add(pnl); 

結果:

Result

+0

是的,您需要將JLabel設置爲居中對齊(1+)。但是,不需要第二個面板。只需將標籤直接添加到框架。感謝Manh Le! – camickr

+0

! –