【问题标题】:Using BorderLayout for adding 4 in-line Components to a JPanel使用 BorderLayout 将 4 个内联组件添加到 JPanel
【发布时间】:2012-10-31 12:09:13
【问题描述】:

在我的应用程序中,有 4 个面板。我需要将它们插入到使用BorderLayout 的主面板中。这 4 个面板是...

  1. 薄图像条。
  2. 4 个按钮就在上方
  3. 一个覆盖整个页面的 TextField。
  4. 即将结束。

这是我的代码...

    add(imageLabel, BorderLayout.NORTH);
    add(buttonPanel,BorderLayout.PAGE_START);
    add(logScrollPane, BorderLayout.CENTER);
    add(about, BorderLayout.PAGE_END);

当我这样做时,buttonPanel 消失了。我怎样才能达到我的需要?

【问题讨论】:

    标签: java swing jframe jpanel border-layout


    【解决方案1】:

    我通常尝试在任何BorderLayout 中保留最多 3 个组件,所以我会这样做...

    JPanel outerPanel = new JPanel(new BorderLayout());
    JPanel innerPanel= new JPanel(new BorderLayout());
    
    innerPanel.add(buttonPanel,BorderLayout.NORTH);
    innerPanel.add(logScrollPane, BorderLayout.CENTER);
    innerPanel.add(about, BorderLayout.SOUTH);
    
    outerPanel.add(imageLabel, BorderLayout.NORTH);
    outerPanel.add(innerPanel,BorderLayout.CENTER);
    

    只要您将“最大拉伸”组件保留在 CENTER(在本例中为您的 logScrollPane)中,它就会始终有效。如果您想使用面板,例如将其设置在JFrame 上,只需使用add(outerPanel)

    不要害怕BorderLayout - 此布局自动扩展CENTER 组件以填充可用空间的能力使其成为非常强大且非常重要的LayoutManager

    【讨论】:

    • 谢谢:)。摇摆确实需要付出代价。应该有一个类似 mvc 的框架来快速进行应用。 Netbeans GUI 仍然是主要帮助
    • @Jatin:另见MVC outlineexample
    猜你喜欢
    • 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
    相关资源
    最近更新 更多