簡體   English   中英

如何使用Java Swing布局巧妙地縮進某些組件

[英]How do I neatly indent some components using Java Swing layouts

使用Swing,縮進復選框或單選按鈕下方的某些組件的最佳方法是什么? 我需要以Firefox 3.6的“選項”->“隱私”對話框的樣式進行操作,其中某些復選框在“主”復選框下縮進。 我可以使用任何標准的AWT / Swing布局,包括GroupLayout。 我也可以使用JGoodies FormLayout。 我最初嘗試在FormLayout中使用setLeadingColumn offset,但除非我在Separator下縮進,否則它似乎無法正常工作。 也許我只是做錯了?

是否有類似SWT GridLayout的horizo​​ntalIndent設置的內容? 那將是完美的。

我正在使用JDK1.6.0_23。

為子組件創建一個JPanel。 然后,您可以將帶有所需縮進的EmptyBorder添加到面板中。

做這件事有很多種方法:

  1. 將每個組件的邊界設置為: new EmptyBorder (0, 10, 0, 0)

  2. 使用GridBagLayout並使用Inset (0, 10, 0, 0)填充左側。

  3. 使用GridBagLayout並讓主復選框跨越兩列,而子復選框則通過將它們放在最右邊的列中來進行偏移。

  4. 提供自定義復選框圖標,這些圖標的左邊緣有一些空白。

等等

我的建議是學習GridBagLayout使用起來有點笨拙,但是它確實為您提供了幾乎所有您想要的布局功能。 當您需要特定的自動列大小調整行為(GBL在沒有一些額外代碼的情況下不會提供給您)時,JGoodies有用。

您應該能夠使用FormLayout很好地完成此任務,只需為子項添加另一列,並使主項跨越2列。

另一個選擇是使用SpringLayout並添加填充。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM