1

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

  1. 一个薄的图像条。
  2. 正下方的 4 个按钮
  3. 覆盖整个页面的 TextField。
  4. 大约在最后。

这是我的代码...

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

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

4

1 回答 1

6

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

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)中,它就会始终有效。如果您想使用面板,例如将其设置在 a 上JFrame,只需使用add(outerPanel).

不要害怕BorderLayout- 这种布局自动扩展CENTER组件以填充可用空间的能力使其非常强大且非常重要LayoutManager

于 2012-10-31T12:14:05.933 回答