5

使用 Swing,在复选框或单选按钮下缩进某些组件的最佳方法是什么?我需要以 Firefox 3.6 的 Options->Privacy 对话框的样式制作一些东西,其中一些复选框缩进在“主”复选框下。我可以使用任何标准的 AWT/Swing 布局,包括 GroupLayout。我还可以使用 JGoodies FormLayout。起初我尝试在 FormLayout 中使用 setLeadingColumn 偏移量,但它似乎无法正常工作,除非我在分隔符下缩进。也许我只是做错了?

有没有像 SWT GridLayout 的 Horizo​​ntalIndent 设置的东西?那将是完美的。

我正在使用 JDK1.6.0_23。

4

4 回答 4

4

为子组件创建一个 JPanel。然后,您可以将 EmptyBorder 添加到具有所需缩进的面板中。

于 2011-01-08T19:18:53.677 回答
3

做这件事有很多种方法:

  1. 将每个组件的边框设置为:new EmptyBorder (0, 10, 0, 0)

  2. 使用 aGridBagLayout并使用 anInset (0, 10, 0, 0)填充左侧。

  3. 使用 aGridBagLayout并让主复选框跨越两列,而子复选框通过将它们放在最右边的列中来偏移。

  4. 提供自定义复选框图标,它们的左边缘添加了一些空白区域。

等等

我的建议是学习GridBagLayout- 它使用起来有些笨拙,但它确实为您提供了几乎所有您想要的布局功能。当您想要特定的自动列大小调整行为时,JGoodies 的东西很有用,如果没有您的一些额外代码,GBL 不会给您。

于 2011-01-08T19:29:06.367 回答
0

您应该能够使用 FormLayout 很好地完成此操作,只需为子项添加另一列,并使主项跨越 2 列。

于 2011-01-08T19:04:49.593 回答
0

另一种选择是使用 SpringLayout 并添加填充。

于 2011-01-08T20:33:19.597 回答