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

发布于 2024-08-06 12:34:32 字数 443 浏览 7 评论 0原文

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

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

如果我这样做:

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

我的面板将显示。

如果我这样做:

    subPanel.add(preconfiguredPanel);

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

I have a JFrame with a JPanel on it.

I want to add another JPanel which is a preconfigured component onto the Jpanel inside my JFrame.

If I do this:

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

my Panel will show.

If I do this:

    subPanel.add(preconfiguredPanel);

my JPanel will not show. The documentation says when using add(Component) it will use the default Layout FlowLayout. Ok fine, but why won't my component display inside that JPanel when using the default FlowLayout???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

茶花眉 2024-08-13 12:34:32

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

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

将面板添加到 FlowLayout 时,流布局将遵循面板的大小。

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

Probably because your panel doesn't have a preferred size.

When you add a panel to a BorderLayout the default is to place it in the center, so the panel will automatically be resized to the size of the frame.

When you add the panel to a FlowLayout, the flow layout repsects the size of the panel.

If you need more help then post your SSCCE.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文