我使用繪製有邊框的多個組件。是否有任何簡單的方法爲組件添加邊距,以便邊框不會彼此靠得過近?如何在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. 如何在li標籤的邊框添加邊距?
- 2. 如何在添加邊距後刪除工具欄周圍的額外邊框?
- 3. 如何在IE7中添加負邊距?
- 4. 如何在Swift中添加邊距
- 5. 在JTextArea中添加邊距?
- 6. 在android中添加邊距
- 7. 如何在Android中爲對齊組件添加邊距
- 8. Swing - JTable JScrollPane刪除下邊框或添加標題邊框
- 9. 如何消除div邊框的邊距
- 10. Java Swing - 使用線邊框在TextArea上設置邊距
- 11. 在CSS中的邊框邊距?
- 12. CSS:iPhone/iPad Safari會在元素周圍添加額外的邊距或邊距?
- 13. 如何設置統一邊框邊距?
- 14. 如何在ggplot2中設置外邊距?
- 15. itextsharp添加頁眉和頁腳,顯示在頁邊距內頁邊距之外。
- 16. SASS/Bourbon/Neat:如何在網格外添加邊距?
- 17. 如何在文本中添加邊框?
- 18. 如何在相機中添加邊框?
- 19. 如何在uiview中添加邊框?
- 20. 如何在razor @if中添加間距邊距?
- 21. Fitgrid - 在列的邊緣添加邊框
- 22. 在div頂部添加額外邊框
- 23. 添加邊框
- 24. java swing中的JTextArea邊框
- 25. 在UIBarButtonItem中添加邊框
- 26. 在Java中添加邊框
- 27. Twitter引導:如何添加邊距?
- 28. 如何將邊距添加到FlowPanel?
- 29. 如何向tkinter窗口添加邊距?
- 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