【问题标题】:How to fill JFrame window with a JPanel?如何用 JPanel 填充 JFrame 窗口?
【发布时间】:2018-10-22 07:18:35
【问题描述】:

我正在尝试设置一个 JPanel 填充 JFrame 的整个窗口。 JPanel 的布局是 GridBagLayout。如果我将其更改为 BorderLayout 它可以工作。但我需要 GridBagLayout,这样 JPanel 就会出现在窗口的中心。 如何用 JPanel 填充 JFrame 的整个窗口(就像使用 BorderLayout 一样)?

【问题讨论】:

    标签: java swing layout jframe jpanel


    【解决方案1】:

    首先,请确保您阅读了How to Use GridBagLayout

    接下来,确保the JavaDocs for GridBagConstraints 已打开且可用

    这两个基本参考资料将为您提供 99% 的信息,以回答您的大多数问题。

    如果没有更多上下文,类似...

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.weightx = 1;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.BOTH;
    

    会达到你想要的结果

    但请记住,您并不局限于单个布局管理器,您可以使用多个容器,所有容器都使用不同的布局管理器来实现您想要的结果

    【讨论】:

    • 还是不行。我在使用 GridBagLayout 的 JPanel 上有一个按钮,它出现在窗口的中心。我希望它出现在窗口的南侧。我使用了 GridBagConstraints.PAGE_END 的锚点,然后使用了 panel.add(btn, gbc)。
    • @ThomasAthanasiou 那么你做错了什么 - 如果没有 Minimal, Complete, and Verifiable example 证明你的问题,就不可能知道你做错了什么
    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 2013-07-19
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多