如何使用Java Swing布局整齐地缩进一些组件

如何使用Java Swing布局整齐地缩进一些组件,java,swing,layout,swt,grid-layout,Java,Swing,Layout,Swt,Grid Layout,使用Swing,在复选框或单选按钮下缩进某些组件的最佳方法是什么?我需要以Firefox3.6的选项->隐私对话框的风格制作一些东西,其中一些复选框缩进到“main”复选框下。我可以使用任何标准的AWT/Swing布局,包括GroupLayout。我还可以使用JGoodies FormLayout。起初,我尝试在FormLayout中使用setLeadingColumn offset,但它似乎无法正常工作,除非我在分隔符下缩进。也许我只是做错了 是否有类似SWT GridLayout的水平指示器

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

是否有类似SWT GridLayout的水平指示器设置?那太好了


我正在使用JDK1.6.0_23。

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

为子组件创建JPanel。然后,您可以使用所需的缩进向面板添加清空订单。

有几种方法可以做到这一点:

  • 将每个组件边框设置为:
    newemptyborder(0,10,0,0)

  • 使用
    GridBagLayout
    并使用
    插图(0,10,0,0)
    填充左侧

  • 使用
    GridBagLayout
    并使主复选框跨越两列,同时通过将子复选框放置在最右边的列中来偏移它们

  • 提供自定义复选框图标,在其左侧边缘添加一些空白

  • 等等


    我的建议是学习
    GridBagLayout
    ——它使用起来有点笨拙,但它确实给了你几乎所有你想要的布局能力。当您需要特定的自动列大小调整行为时,JGoodies工具非常有用。如果您没有额外的代码,GBL将无法提供这种行为。

    另一个选项是使用SpringLayout并添加填充。

    GridBagLayout
    更容易进行简单的修复,而且它不会像
    EmptyBorder
    那样干扰焦点指示器。