我使用繪製有邊框的多個組件。是否有任何簡單的方法爲組件添加邊距,以便邊框不會彼此靠得過近?如何在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