我想在我的 JButton
上保留默认边框,但也在它们周围放置空白区域。我正在使用垂直 BoxLayout
。
我最初对边框只字未提,得到了我想要的单像素
LineBorder
,但按钮都相互靠在一起。然后我尝试了
button[i].setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5))
。它没有在按钮周围添加空白,而是扩大了按钮的区域。它还删除了LineBorder
。然后我尝试了:
button[i].setBorder(BorderFactory.createCompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), button.getBorder()))
这给了我 LineBorder
,但它并没有在行外添加空白,而是将按钮的区域扩展到了行之外!
我意识到我可以添加空白框来分隔我的按钮,但我也希望在它们的两侧留有空间,这就是我想要添加 EmptyBorder
的原因。我是 Swing 的新手,所以也许有一种我不知道的完全更好的方法:)
我正在使用 Jython,但 API 应该与 Java 中的相同。
最佳答案
从概念上讲,您要添加的“空白边框”实际上并不是按钮的一部分(例如,它们不应该是可点击的)。
这实际上是布局问题,因此您可能应该查看所用布局管理器的文档。例如:
- 一些布局管理器,例如FlowLayout , BorderLayout , 或 GridLayout ,具有
hgap
和vgap
属性来指定组件之间的水平和垂直间隙。 - 与 GridBagLayout您可以设置 GridBagConstraints 的
insets
对象。 - 与 BoxLayout您将添加“刚性区域”、“胶水”和“填充物”(参见 Box 类)。
等等。
关于java - 如何在 Jbutton 的边缘周围添加一个间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6869341/