【问题标题】:which LayOut Manager is most suitable for my GUI?哪个 LayOut Manager 最适合我的 GUI?
【发布时间】:2013-05-18 08:21:33
【问题描述】:

我正在为布局管理器的选择而苦苦挣扎。我必须设置一个基本上类似于堆栈的 GUI,例如:

---------------
'             '
'  ---------  '
'  |       |  '
'  ---------  '
'             '
'  ---------  '
'  |       |  '
'  ---------  '
'             '
'   LABEL     '
'             '
'  ---------  '
'  |       |  '
'  ---------  '
'             '
---------------

我尝试过 BorderLayout,但效果不佳,因为“LABEL”会将第二个文本字段替换为 CENTER。而且我不能使用 BoxLayout。

Flowlayout 是否也将标签和字段设置为垂直?

【问题讨论】:

  • 使用BoxLayout - 易于使用,没有GridbagLayout的复杂性
  • @Extreme Coders,你为什么不提交这个作为答案?

标签: java swing layout user-interface layout-manager


【解决方案1】:

使用BoxLayout - 易于使用,没有GridbagLayout的复杂性

BoxLayout 允许多个组件垂直或水平布局。组件不会换行,例如,当调整框架大小时,组件的垂直排列将保持垂直排列。嵌套具有不同水平和垂直组合的多个面板会产生类似于 GridBagLayout 的效果,但没有复杂性。 BoxLayout 管理器是使用指定要完成的布局类型的轴参数构造的。对于所有方向,组件的排列顺序与它们添加到容器中的顺序相同。

您可以像这样将小部件堆叠在顶部

或并排

你也可以使用TableLayout来达到类似的效果。

【讨论】:

  • 是的,我想过,但最好不要使用 Boxes。
  • @DilshatAbduwalli 有什么不使用BoxLayout的具体理由吗?
【解决方案2】:

您可以使用带有构造函数的网格布局,它以行数和列数作为参数。将列数设置为 1 与您想要的行数

例如:

GridLayout myLayout =new GridLayout( 3, 1 );

【讨论】:

  • 是的,这是一个好主意,但是 (3,1) 不起作用,而是 (0,1) 起作用了
  • @DilshatAbduwalli GridLayout 将赋予每个单元格相同的大小,这可能是不可取的。
  • @ExtremeCoders- 是的,你是对的。尤其是当您扩展或收缩框架时,标签和按钮会扩展或收缩。
【解决方案3】:

根据您当前的要求。 Grid Layout,是最好的。参考链接并享受。

【讨论】:

    【解决方案4】:

    我倾向于避免使用所有标准的 Swing 布局管理器。除了 GridbagLayout 之外,它们的用处都非常有限,而且后者非常复杂。目前DesignGridLayout是我的首选,MiG Layout也不错。虽然您的特定场景可以在盒子布局中工作,但很难扩展它。

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多