使用Swing,在复选框或单选按钮下面缩进某些组件的最佳方法是什么?我需要以Firefox 3.6的Options-> Privacy对话框的方式制作一些东西,其中一些复选框在“main”复选框下缩进。我可以使用任何标准的AWT / Swing布局,包括GroupLayout。我也有JGoodies FormLayout可供我使用。我首先尝试在FormLayout中使用setLeadingColumn偏移量,但似乎除非我在分隔符下进行缩进,否则它将无法正常工作。也许我只是做错了?
是否有类似SWT GridLayout的horizontalIndent设置?那将是完美的。
我正在使用JDK1.6.0_23。
答案 0 :(得分:3)
为子组件创建JPanel。然后,您可以使用所需的缩进将EmptyBorder添加到面板。
答案 1 :(得分:3)
有几种方法可以做到这一点:
将每个组件边框设置为:new EmptyBorder (0, 10, 0, 0)
。
使用GridBagLayout
并使用Inset (0, 10, 0, 0)
填充左侧。
使用GridBagLayout
并使主复选框跨越两列,而子复选框则通过将它们放在最右边的列中来抵消。
提供自定义复选框图标,左侧边缘添加了一些空白区域。
等
我的建议是学习GridBagLayout
- 它使用起来有点笨拙,但它确实为你提供了你想要的所有布局能力。当您需要特定的自动列大小调整行为时,JGoodies内容非常有用,如果您没有其他代码,GBL将无法为您提供这些行为。
答案 2 :(得分:0)
您应该可以使用FormLayout完成此操作,只需为子项添加另一列,并使主项目跨越2列。
答案 3 :(得分:0)
另一种选择是使用SpringLayout并添加填充。