在我的应用程序中,有4个面板。我需要将它们插入主面板,使用BorderLayout
。 4个面板是......
这是我的代码......
add(imageLabel, BorderLayout.NORTH);
add(buttonPanel,BorderLayout.PAGE_START);
add(logScrollPane, BorderLayout.CENTER);
add(about, BorderLayout.PAGE_END);
当我这样做时,buttonPanel
消失了。我怎样才能达到我的需要?
答案 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
!