【问题标题】:GroupLayout layout=new GroupLayout(getContentPane())GroupLayout 布局=新 GroupLayout(getContentPane())
【发布时间】:2013-08-14 20:46:48
【问题描述】:

我正在学习 Swings,我对这一行感到困惑

GroupLayout layout=new GroupLayout(getContentPane());

现在我有 2 个问题

  1. getContentPane() 返回什么。 [我看到了文档,变得更加困惑]
  2. 我们为什么要把它传递给 GroupLayout,我的意思是 getContentPane() 是如何用于 Group Layout 的

【问题讨论】:

    标签: java swing grouplayout


    【解决方案1】:

    getContentPane() 返回什么

    它返回组件的内容窗格

    • 要出现在屏幕上,每个 GUI 组件都必须是包含层次结构的一部分。包含层次结构是一个组件树,它以顶级容器为根。
    • 每个 GUI 组件只能包含一次。如果某个组件已经在一个容器中,而您尝试将其添加到另一个容器中,则该组件将从第一个容器中移除,然后再添加到第二个容器中。
    • 每个顶级容器都有一个内容窗格,一般来说,它包含(直接或间接)该顶级容器 GUI 中的可见组件。
    • 您可以选择将菜单栏添加到顶级容器。按照惯例,菜单栏位于顶级容器内,但位于内容窗格之外。某些外观(例如 Mac OS 外观)让您可以选择将菜单栏放置在更适合外观的其他位置,例如屏幕顶部。

    你可以阅读更多here

    为什么我们将它传递给 GroupLayout ,我的意思是 getContentPane() 是如何 习惯于Group Layout

    GroupLayout 就是这样实现的。

    构造函数:

    GroupLayout(Container host)
    

    为指定的 Container 创建一个 GroupLayout。请参考javadoc for more

    【讨论】:

    • 大声笑,正如您在第一点中提到的那样“我们稍后会向您展示。”,您应该删除该行:-),尽管 +1 表示其余的。
    【解决方案2】:
    1. getContentPane() 返回什么。 [我看到了文档,变得更加困惑]

      JFrame 的getContentPane() 函数返回Container 对象,您可以在该对象中添加您希望在JFrame 上添加的其他组件。

    2. 我们为什么将它传递给 GroupLayout ,我的意思是 getContentPane() 如何用于 Group Layout

      GroupLayout 布局=新 GroupLayout(getContentPane());

    功能是

    /**
     * Creates a {@code GroupLayout} for the specified {@code Container}.
     *
     * @param host the {@code Container} the {@code GroupLayout} is
     *        the {@code LayoutManager} for
     * @throws IllegalArgumentException if host is {@code null}
     */
    public GroupLayout(Container host) {
        if (host == null) {
            throw new IllegalArgumentException("Container must be non-null");
        }
        honorsVisibility = true;
        this.host = host;
        setHorizontalGroup(createParallelGroup(Alignment.LEADING, true));
        setVerticalGroup(createParallelGroup(Alignment.LEADING, true));
        componentInfos = new HashMap<Component,ComponentInfo>();
        tmpParallelSet = new HashSet<Spring>();
    }
    

    此构造函数语句为指定容器创建 GroupLayout。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 2017-02-03
      • 2013-06-25
      • 2013-04-11
      • 1970-01-01
      相关资源
      最近更新 更多