【问题标题】:Show all borders in MigLayout在 MigLayout 中显示所有边框
【发布时间】:2012-07-14 03:06:35
【问题描述】:

我目前正在使用 MigLayout。有人知道如何显示 MigLayout 内的所有边框吗?我希望它看起来像表格或网格。

【问题讨论】:

  • Swing 中的布局管理器不处理边框,边框应用于布局中的控件:docs.oracle.com/javase/7/docs/api/javax/swing/…
  • 在组件上执行setBackground(Color.xxx) 以查看边缘。
  • 如果你指的是 MigLayout 添加的间隙,可以在布局中添加debug x 约束,其中 x 是每次刷新之间的毫秒数。
  • 好吧,好像没有真正的解决办法。只有几个解决方法。但是非常感谢。 :-)

标签: java swing miglayout


【解决方案1】:

这并不是一个真正的 MigLayout 问题,但答案是: panel.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.gray));

【讨论】:

  • 只是指出这一点并不能回答问题。这只会勾勒面板的边框,但不会满足请求的行为。
  • Jubbat,我了解到他想在 MigLayout 中显示所有边框,而这实际上实现了这一点。有什么更具体的可以帮助您的吗?
【解决方案2】:

我想用我的发现来补充 Mitch Connor 的回答。

这是创建具有全局约束和 4 列的 MigLayout 的方式:

  final JPanel jPanel = new JPanel( new MigLayout( "insets 0 0 0 0, gap 0 -1, wrap 4, fill",
      "0 [ right, fill ] -1 [ right, fill ] 10 [ right, fill ] -1 [ right, fill ] 0 " ) ) ;

这是我为里面的组件设置的边框:

  private static Border MARKET_DEPTH_CELL_BORDER = BorderFactory.createCompoundBorder(
      BorderFactory.createLineBorder( Colors.GRAY_HALF, 1 ),
      BorderFactory.createEmptyBorder( 2, 10, 2, 10 )
  ) ;

请注意,MigLayout 的 insets 被破解以叠加相邻的边框。为了在组件本身周围留出空间,我添加了一个空边框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-13
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多