2013-04-03 87 views

回答

8

如果沒有必要調整它們的大小,你可以只需使用BorderLayout並將您的面板插入BorderLayout.EASTBorderLayout.WEST

JPanel panel = new JPanel(new BorderLayout()); 
panel.add(leftPanel, BorderLayout.WEST); 
panel.add(rightPanel, BorderLayout.EAST); 

你也可以考慮使用JSplitPane它允許調整UI:

JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, 
            leftPanel, rightPanel); 
+0

1我會使用['BorderLayout.LINE_START'](http://docs.oracle.com/javase/7/docs/api/java/awt /BorderLayout.html#LINE_START)和['BorderLayout.LINE_END'](http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html#LINE_END)代替:) –

2

有兩種方式

  • 使用網格佈局

  • 使用調整JSplitPane(隱藏分頻器)

2
JPanel panel = new JPanel(new BorderLayout()); 
panel.add(c1, BorderLayout.WEST); 
panel.add(c2, BorderLayout.EAST); 

JPanel panel = new JPanel(new GridLayout(1, 2)); 
panel.add(c1); 
panel.add(c2); 
2

您可以使用SplitPane作爲斯特凡諾Aivalis建議。

在JPanel上使用Border Layout Manager
將您的左側組件放在WEST側,並將右側組件放在佈局管理器的EAST側。

JPanel panel = new JPanel(new BorderLayout()); 
panel.add(c1, BorderLayout.WEST); 
panel.add(c2, BorderLayout.EAST); 
1
JPanel leftPanel = new JPanel(); 
JPanel rightPanel = new JPanel(); 
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel); 
+0

錯誤 - 構造函數JSplitPane(JPanel,JPanel)未定義 – SuperStar

+0

JSplitPane窗格=新的JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,rightPanel)。試試這個 –

1
JPanel example = new JPanel(new GridLayout(1,2)); 
example.add(p1); 
example.add(p2); 
+0

這樣做。它弄亂了gui,左側面板中的小按鈕佔據了整個左側,其他應該在左側的組件不可見 – SuperStar

+0

左側有多少個組件? 如果你想要多於一個,你必須再次分割左側面板。 – soumer

+0

左側三塊面板。每個面板都有一些組件,如按鈕,文本字段等。 – SuperStar

0
import java.awt.BorderLayout; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JSplitPane; 

public class Display{ 

JFrame frame=new JFrame("Drawing"); 
North north; 
South south; 
East east; 
West west; 
Center center; 
public int width=600,height=600; 

public Display() { 
    // TODO Auto-generated constructor stub 
    frame.setSize(width,width); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setLocationRelativeTo(null); 
    frame.setResizable(true); 

    north=new North(frame); 
    south=new South(frame); 
    east=new East(frame); 
    west=new West(frame); 
    center=new Center(frame); 

    frame.setLayout(new BorderLayout()); 


JSplitPane pane2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,west,east); 

frame.add(pane2); 

    frame.setVisible(true); 

    } 

}