【问题标题】:Positioning a Jpanel into another Jpanel将一个 Jpanel 定位到另一个 Jpanel
【发布时间】:2016-01-30 17:21:35
【问题描述】:

我正在尝试将一个 Jpanel 放入另一个 Jpanel,但我在定位到所需位置(即在 Jpanel 的中心)时遇到问题,这不允许我在框架上对齐组件。我想要类似于以下链接Setting panel at center of screen by using layout 中给出的已接受答案的内容 但这个答案是父面板没有任何组件的情况,因为我的父面板上的文本字段和标签很少。

【问题讨论】:

    标签: java swing jframe jpanel


    【解决方案1】:

    但这个答案是父面板没有任何组件的情况,因为我的父面板上的文本字段和标签很少。

    那么在您的主面板中,您可能会使用 BorderLayout。

    PAGE_START 位置(即NORTH),您将创建一个带有文本字段和标签的面板。

    然后您创建另一个仅使用 GridBagLayout 的面板并将此面板添加到 BorderLayout 的“CENTER”。

    最后,您创建子面板,然后您可以将其添加到 CENTER 的面板中,子面板将在该空间中居中。

    布局管理的关键是使用不同的布局管理器嵌套面板以实现您的目标。

    【讨论】:

      【解决方案2】:

      如果你想在另一个Panel的中心插入一个panel,你可以使用BorderLayout。

      我给你写一个例子:

      JPanel main = new JPanel();
      JPanel secondPanel = new JPanel();
      
      main.setLayout(new BorderLayout());
      main.add(secondPanel, BorderLayout.CENTER);
      add(main);
      

      【讨论】:

      • 这不会在父面板中“居中”子面板。
      • 这无济于事,因为如果我更改父面板的布局,就像我尝试将其设置为框布局和边框布局一样,它不显示任何内容,或者它给出了一个错误。因此,我正在为子面板使用框布局,它可以工作,但在表单的一侧显示子面板的组件,而我试图在父面板的中间显示它们。所以子面板上面有一些文本字段和标签,下面有一个父面板的按钮
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多