JPanel未按预期添加BorderLayout组件

时间:2015-07-26 10:05:13

标签: java swing jpanel layout-manager border-layout

我现在已经尝试了很长时间才发现问题但无济于事,真是一个非常简单的问题,BorderLayout不会将按钮添加到正确的位置屏幕(南)。

我不想将按钮添加到JPanel本身,我想创建一个辅助面板,将该面板添加到主面板,将按钮添加到辅助面板,这里是简单的代码:

public class panelClass extends JPanel{

JPanel secondaryPanel = new JPanel();
JButton btn = new JButton("Test");

public panelClass(){
    add(secondaryPanel);
    secondaryPanel.setLayout(new BorderLayout());
    secondaryPanel.add(btn, BorderLayout.SOUTH);
}}

按钮显示在屏幕的中上部,就像常规一样 FlowLayout,而不是像我预期的那样处于中下部分。

1 个答案:

答案 0 :(得分:3)

这一行是问题

add(secondaryPanel);

jpanel的默认布局是flow layout。所以当您将辅助面板添加到主面板辅助面板添加到主面板的中上部位置时。这就是为什么你看到按钮出现在主要面板的中上部分的原因。屏幕,就像普通的flowLayout。如果您将背景颜色设置为辅助面板,您可以自己清楚地看到问题

为主面板添加适当的布局。例如

setLayout(new BorderLayout());
add(secondaryPanel,BorderLayout.CENTER);