【问题标题】:How to remove gap between controls in JToolBar?如何消除 JToolBar 中控件之间的间隙?
【发布时间】:2010-06-20 19:55:10
【问题描述】:

如何消除 JToolBar 中控件之间的间隙?我希望 JToolBar 中的控件之间没有可用空间。

编辑: 我错了。没有可用空间。问题是由仅带有图标的 JButton(位于 JToolBar 中)引起的。它在图标周围有一些额外的边距。如何删除它们?

【问题讨论】:

  • JToolBar 中的控件之间没有间隙。工具栏的布局管理器是一个扩展 BoxLayout 的类,它不会在组件之间添加间隙,除非您添加填充组件。如果您认为存在差距,请发布您的 SSCCE (sscce.org) 来证明问题。

标签: java swing jbutton jtoolbar


【解决方案1】:

http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JToolBar.html 的代码用示例代码解释:

public class ToolBarButton extends JButton {
  private static final Insets margins = new Insets(0, 0, 0, 0);

  public ToolBarButton(Icon icon) {
     super(icon);
     setMargin(margins);
     setVerticalTextPosition(BOTTOM);
     setHorizontalTextPosition(CENTER);
  }
  // ...

屏幕截图:

【讨论】:

    【解决方案2】:

    我自己从未尝试过,但通过阅读 JavaDoc,我会尝试一些事情:

    1. 尝试使用setMargin(Insets) - 它 不做你要求的,但是 它可能会达到你想要的效果。
    2. 使用setLayout(LayoutManager) 设置LayoutManager 并将布局管理器上的填充定义为0。(也许GridLayout 是您需要的?)

    【讨论】: