1

我有一个 JFrame,上面有一个 JPanel。

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

如果我这样做:

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

我的面板将显示。

如果我这样做:

    subPanel.add(preconfiguredPanel);

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

4

1 回答 1

4

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

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

当您将面板添加到 FlowLayout 时,流程布局会反映面板的大小。

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

于 2009-10-05T20:05:19.467 回答