Java 如何将JPanel划分为左段和右段?

Java 如何将JPanel划分为左段和右段?,java,swing,layout,jpanel,Java,Swing,Layout,Jpanel,我想把一个JPanel分成左段和右段。我该怎么做?之后,我将在左半部分和右半部分放置面板 如果你使用一个 有两种方法 使用网格布局 使用JSplitPane(带隐藏分隔符) 如果不需要调整它们的大小,您只需使用边界布局并将面板插入边界布局。东和边界布局。西: JPanel panel = new JPanel( new BorderLayout() ); panel.add( leftPanel, BorderLayout.WEST ); panel.add( rightPanel, Bord

我想把一个JPanel分成左段和右段。我该怎么做?之后,我将在左半部分和右半部分放置面板

如果你使用一个

有两种方法

  • 使用网格布局

  • 使用JSplitPane(带隐藏分隔符)


如果不需要调整它们的大小,您只需使用
边界布局
并将面板插入
边界布局。东
边界布局。西

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

你也可以考虑使用一个允许调整UI大小:

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

使用或网格布局

您可以按照Costis Aivalis的建议使用SplitPane。

在JPanel上使用
将左侧组件置于layout manager的西侧,将右侧组件置于layout manager的东侧

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

错误-构造函数JSplitPane(JPanel,JPanel)是未定义的JSplitPane pane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,righpanel)。试试这个,我就是这么做的。它弄乱了gui,左侧面板中的小按钮占据了整个左侧,而左侧的其他组件不可见左侧有多少组件?如果需要多个面板,则必须再次拆分左侧面板。左侧有三个面板。每个面板都有一些组件,如按钮、文本字段等。因此,对于左侧面板,您可以使用GridLayout(3,1),然后添加按钮、文本字段。。这将给你三行。如果希望按钮和文本字段水平排列,可以使用GridLayout(1,3),这将提供三列+1,我将使用:)
JPanel panel = new JPanel(new BorderLayout());
panel.add(c1, BorderLayout.WEST);
panel.add(c2, BorderLayout.EAST);
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel);
JPanel example = new JPanel(new GridLayout(1,2));
example.add(p1);
example.add(p2);
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);

  }

 }