【问题标题】:How to divide a JPanel into left and right segments?如何将 JPanel 分成左右两个部分?
【发布时间】:2013-03-24 20:09:45
【问题描述】:

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

【问题讨论】:

    标签: java swing layout jpanel


    【解决方案1】:

    如果您使用JSPlitPane,这很容易。

    【讨论】:

      【解决方案2】:

      有两种方法

      • 使用网格布局

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

      【讨论】:

        【解决方案3】:
        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);
        

        【讨论】:

          【解决方案4】:

          如果不需要调整它们的大小,您只需使用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 );
          

          【讨论】:

          【解决方案5】:

          使用 JSplitPane 或 GridLayout

          【讨论】:

            【解决方案6】:

            您可以按照 Costis Aivalis 的建议使用 SplitPane。
            或者
            在 JPanel 上使用 Border Layout Manager
            将左侧组件放在 WEST 侧,将右侧组件放在布局管理器的 EAST 侧。

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

            【讨论】:

              【解决方案7】:
              JPanel leftPanel = new JPanel();
              JPanel rightPanel = new JPanel();
              JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel);
              

              【讨论】:

              • 错误 - 构造函数 JSplitPane(JPanel, JPanel) 未定义
              • JSplitPane 窗格 = 新 JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel)。试试这个
              【解决方案8】:
              JPanel example = new JPanel(new GridLayout(1,2));
              example.add(p1);
              example.add(p2);
              

              【讨论】:

              • 做到了。它弄乱了 gui,左侧面板中的小按钮占据了整个左侧,而应该在左侧的其他组件不可见
              • 左边有多少个组件?如果您想要多个,则必须再次拆分左侧面板。
              • 左侧的三个面板。每个面板都有一些组件,如按钮、文本字段等。
              • 所以对于左侧面板,您可以使用 GridLayout(3,1) 然后添加按钮、文本字段.. 这将为您提供三行。如果您想水平放置按钮和文本字段,您可以使用 GridLayout(1,3) 这将为您提供三列
              【解决方案9】:
              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);
              
                }
              
               }
              

              【讨论】:

                猜你喜欢
                • 2019-03-08
                • 2021-07-12
                • 2019-11-09
                • 1970-01-01
                • 2019-11-05
                • 1970-01-01
                • 2020-06-24
                • 2011-11-26
                • 2014-09-02
                相关资源
                最近更新 更多