2013-04-03 31 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); 

    } 

}