在Java 1.6中,为什么使用默认的add()将Jpanel添加到另一个JPanel而不显示添加的面板?

时间:2009-10-05 19:51:55

标签: java jpanel layout-manager

我有一个带有JPanel的JFrame。

我想在我的JFrame中的Jpanel上添加另一个JPanel,它是一个预先配置的组件。

如果我这样做:

    subPanel.setLayout(new BorderLayout());
    subPanel.add(preconfiguredPanel,BorderLayout.CENTER);

我的小组将会显示。

如果我这样做:

    subPanel.add(preconfiguredPanel);

我的JPanel不会显示。文档说当使用add(Component)时,它将使用默认的Layout FlowLayout。好的,但是为什么我的组件在使用默认的FlowLayout ???

时不会在JPanel中显示

1 个答案:

答案 0 :(得分:4)

可能是因为您的面板没有首选尺寸。

当您将面板添加到BorderLayout时,默认设置是将其放置在中心,因此面板将自动调整为框架大小。

将面板添加到FlowLayout时,流程布局会重新选择面板的大小。

如果您需要更多帮助,请发布您的SSCCE。