【问题标题】:BoxLayout inside a BorderLayout边框布局内的 BoxLayout
【发布时间】:2014-02-25 10:03:02
【问题描述】:

我有一个 BorderLayout,我希望在其中包含一个 BoxLayout,这样我就有了三个垂直按钮。 设计是这样的: 我想要一个水平边框布局,下面有两个边框布局。在左边框布局中,我想要带有三个垂直按钮的 boxlayout。

这是我尝试过的代码:

    JLabel label2 = new JLabel("LOGO");
    pane.add(label2, BorderLayout.PAGE_START);

    button = new JButton("Button 2 (CENTER)");
    button.setPreferredSize(new Dimension(200, 100));
    pane.add(button, BorderLayout.CENTER);

    button = new JButton("Button 3 (LINE_START)");
    pane.add(button, BorderLayout.LINE_START);

    button = new JButton("Long-Named Button 4 (PAGE_END)");
    pane.add(button, BorderLayout.PAGE_END);

我应该怎么做才能得到提到的设计。现在我没有得到它,我不知道如何在borderlayout中添加boxlayout。

【问题讨论】:

  • “现在我没有得到它”你能提供一张你得到得到什么的图片吗?其他提示: 1) 为了尽快获得更好的帮助,请发布MCTaRE(最小完整测试和可读示例)。 2) 请参阅How do I create screenshots?(有关制作出色截图的技巧)。
  • BTW - 如果问题是组件被拉伸,一个常见的解决方法是将BoxLayout 包装到FlowLayout 中,然后将其添加到BorderLayout使用 FlowLayout 的面板将被拉伸,但内容 将保持首选大小。
  • button.setPreferredSize(new Dimension(200, 100)); Java GUI 可能必须在多个平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于组件的精确放置。要为强大的 GUI 组织组件,请改用布局管理器或 combinations of them,以及 white space 的布局填充和边框。增加按钮大小的一个好方法是调用setMargin 或增加Font 大小。两者都最好在 PLAF 中完成。

标签: java swing layout-manager border-layout boxlayout


【解决方案1】:

您需要创建一个具有所需布局的新JPanel (BoxLayout) 并将这两个按钮添加到其中,然后将这个新创建的panel 添加到您现有的pane

  JPanel pane1 = new JPanel(<Pass BoxLayout here>);
  pane1.add(<add button 1 here>);
  pane1.add(<add button 2 here>);

  pane.add(pane1, <Position>);

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 2023-03-19
    • 1970-01-01
    • 2011-09-24
    • 2014-04-07
    • 2017-05-12
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多