使用BorderLayout将4个内嵌组件添加到JPanel

时间:2012-10-31 12:09:13

标签: java swing jframe jpanel border-layout

在我的应用程序中,有4个面板。我需要将它们插入主面板,使用BorderLayout。 4个面板是......

  1. 薄图像条。
  2. 上面的4个按钮
  3. 覆盖整个页面的TextField。
  4. 一个即将结束。
  5. 这是我的代码......

        add(imageLabel, BorderLayout.NORTH);
        add(buttonPanel,BorderLayout.PAGE_START);
        add(logScrollPane, BorderLayout.CENTER);
        add(about, BorderLayout.PAGE_END);
    

    当我这样做时,buttonPanel消失了。我怎样才能达到我的需要?

1 个答案:

答案 0 :(得分:6)

我通常会尝试在BorderLayout中保留最多3个组件,所以我会这样做......

JPanel outerPanel = new JPanel(new BorderLayout());
JPanel innerPanel= new JPanel(new BorderLayout());

innerPanel.add(buttonPanel,BorderLayout.NORTH);
innerPanel.add(logScrollPane, BorderLayout.CENTER);
innerPanel.add(about, BorderLayout.SOUTH);

outerPanel.add(imageLabel, BorderLayout.NORTH);
outerPanel.add(innerPanel,BorderLayout.CENTER);

只要您在CENTER(在这种情况下,您的logScrollPane)中保留“最大拉伸”组件,它就会始终有效。如果您想使用该面板,例如在JFrame上进行设置,请使用add(outerPanel)

不要害怕BorderLayout - 此布局能够自动展开CENTER组件以填充可用空间,使其成为非常强大且非常重要的LayoutManager