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

Jat*_*tin 1 java swing jpanel jframe border-layout

在我的应用程序中,有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);
Run Code Online (Sandbox Code Playgroud)

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

wat*_*ios 6

我通常会尝试最多保留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);
Run Code Online (Sandbox Code Playgroud)

只要你保留"最大拉伸"组件CENTER(在这种情况下,你的logScrollPane),它就会一直有效.如果您想使用面板,例如将其设置为a JFrame,请使用add(outerPanel).

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