2013-11-20 95 views
0
public class Test extends JFrame { 
    JPanel panel = new JPanel(); 
    JLabel label = new JLabel("g"); 
    JLabel label2 = new JLabel("w"); 

    public Test(){ 
     this.setVisible(true); 
     this.add(panel, BorderLayout.SOUTH)); 
     this.setSize(200,200); 
     panel.add(label, new FlowLayout(FlowLayout.RIGHT); 
     panel.add(label2, new FlowLayout(FlowLayout.LEFT); 
    } 
} 

我以爲這會將標籤放在label2的右側,但不會如何去做這件事?在JPanel上定位JLabel

回答

0

接下來的問題panel.add(label, new FlowLayout(FlowLayout.RIGHT));是錯誤的構造,您的JPanel默認爲FlowLayout,您可以從左到右或從右到左依次添加組件。在JFrame施工結束

呼叫setVisible(true);:正因爲如此添加您的標籤旁邊似:

panel.add(label2); 
panel.add(label); 

也。

使用pack()方法,而不是setSize(200,200);

閱讀教程LayoutManagersFlowLayout.

+0

確定,但如果我想JLabel以是最遠的,它可以是正確的,我怎麼能做到這一點? –

+0

您可以使用下一個[構造函數](http://docs.oracle.com/javase/7/docs/api/java/awt/FlowLayout.html#FlowLayout(int,%20int,%20int))將間隙添加到組件或另一個LayoutManager,例如['GridBagLayout'](http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html)。 – alex2410