2016-05-23 320 views
0

我使用java swing 我試過witj一些佈局,但他們did''work。 我有一個mainpanel,其中包含一些面板,或者向右或向左移動 ,其中一個顯示在下面。將JPanel添加到JPanel的右側或左側

有人知道該怎麼辦? 感謝所有

enter image description here

+0

網格或網格包佈局...網格:所有單元具有相同的維度,一個單元中有一個孩子,每個單元最多有一個孩子。網格包:稍微複雜一些。使用網格2x2,其中一個面板在(1,0),另一個在(0,1)。 –

+0

但窗格的數量未定義,它們可以是14或100 –

+0

然後在知道窗格數量時相應地創建一個網格佈局,問題是什麼? –

回答

3

這是一個聊天應用程序,

如果你只是顯示在面板的文字,你也許能夠使用的JTextPane用左/右對齊文本如下所示:Java Swing JTextArea write both left and right

或者您希望使用帶有每列一個組件的GridBagLayout。然後您需要使用:

  1. fill對每個組件的約束,以便填充行中可用的寬度。
  2. 然後對於每個組件,您將使用anchor約束,以便該組件位於LINE_STARTLINE_END上。

閱讀關於Using a GridBagLayout的Swing教程的部分,瞭解關於這些約束的更多信息。

或者,您可以使用Relative Layout,這也允許面板的垂直佈局。在這種情況下,代碼將如下所示:

RelativeLayout rl = new RelativeLayout(RelativeLayout.Y_AXIS); 
rl.setFill(true); 
setLayout(rl); 

JPanel left = new JPanel(new FlowLayout(FlowLayout.LEFT)); 
left.add(new JLabel("left")); 
add(left); 

JPanel right = new JPanel(new FlowLayout(FlowLayout.RIGHT)); 
right.add(new JLabel("right")); 
add(right); 

所以您只需要管理每個面板的FlowLayout對齊。