我使用绘制有边框的多个组件。是否有任何简单的方法为组件添加边距,以便边框不会彼此靠得过近?如何在Swing中的组件边框外添加边距?
6
A
回答
3
这通常是使用布局管理器完成的。例如,如果您使用的是GridBagLayout
,则可以在GridBagConstraint
对象上将insets
设置为所需的值。
另一种选择是使用Box
对象并添加水平或垂直结构。对于Box.createVerticalStrut(int width)
和类似createHorizontalStrut
见javadoc。
14
另一种方式得到你想要的是:
- 让您 组件
- 如果
null
目前Border
,为您 组件设置EmptyBorder
- 如果不是
null
,创建新的CompoundBorder
(与EmptyBorder
和当前Border
的 分量),并将其设置为 组件
在代码中,这应该是一个(抱歉,我没有测试过):
Border current = component.getBorder();
Border empty = new EmptyBorder(top, left, bottom right);
if (current == null)
{
component.setBorder(empty);
}
else
{
component.setBorder(new CompoundBorder(empty, current));
}
其中:
- 组件是Swing组件到 您要添加一个保证金
- 顶部,左侧,底部,右侧是 像素数量要围绕 您的组件添加
注意,此方法可能对窗体布局的冲击(大小,对齐),这取决于LayoutManager
您使用。但我认为这值得尝试。
+0
这种方法为我创造了不透明的边框,而不是透明的边框。这是一个问题。我使用了一个修改版本:不是在组件上设置边框,而是创建一个新面板并在其上设置边框,然后将该组件添加到该面板。这样做后,边界透明如预期。 @jfpoilpret你能更新你的答案吗? – Loduwijk 2016-11-11 13:38:25
相关问题
- 1. 如何在添加边距后删除工具栏周围的额外边框?
- 2. 如何在IE7中添加负边距?
- 3. 如何在Swift中添加边距
- 4. Swing - JTable JScrollPane删除下边框或添加标题边框
- 5. 如何消除div边框的边距
- 6. Java Swing - 使用线边框在TextArea上设置边距
- 7. 如何设置统一边框边距?
- 8. 如何在ggplot2中设置外边距?
- 9. 如何在文本中添加边框?
- 10. 如何在uiview中添加边框?
- 11. 如何在相机中添加边框?
- 12. 如何在razor @if中添加间距边距?
- 13. 添加边框
- 14. 在Java中添加边框
- 15. 如何给段落添加页边距?
- 16. 如何向tkinter窗口添加边距?
- 17. java swing中的JTextArea边框
- 18. 边框无边距图片
- 19. Swing Draw GridBagLayout组件中组件之间的1px边框线
- 20. BoxLayout添加左边距
- 21. 将边距添加到UITableView
- 22. 如何在边框周围添加另一个边框?
- 23. 如何添加对话框的左右边距
- 24. 如何在使用GroupLayout时向组件添加边框?
- 25. Ember-Component如何在“click”组件上添加边框?
- 26. Android GridView外边距
- 27. 如何在位图上添加边框
- 28. 如何在QWidget周围添加边框?
- 29. 如何将边距添加到背景图像到文本框?
- 30. 如何添加边框到表单框?
是的,我可以使用'盒子',但如果我有很多盒子边缘,代码将会非常难看...... – Jonas 2010-05-21 15:20:16
您是否尝试过使用插页?你目前使用什么布局?你的显示器有多复杂? – 2010-05-21 15:22:36
布局很复杂,它是一个Invoice类,它实现了'Printable',所以我使用了许多不同的布局管理器,'SpringLayout','BorderLayout','BoxLayout'等......我会尝试使用Insets,谢谢。 – Jonas 2010-05-21 15:28:51