Java Swing中是否存在“Group Box”等价物?

尝试在Java / Swing中构build一个GUI应用程序。 我主要习惯于在Windows上用VB等工具“绘画”GUI(或者更确切地说,Gupta SQLWindows …想知道有多less人知道这是什么;-))。

我无法在Swing中find相当于Group Box的…

用一个组框,你有一个方框(通常有一个标题)围绕着一些相关的小部件。 一个例子是围绕几个单选button的组框(标题解释单选button是关于什么的,例如带有“男”和“女”的单选button的标题为“性”的组框)。

我search了一下…我发现的唯一方法是添加一个子窗格,在子窗格上设置边框,然后将“组”中的所有窗口小部件添加到子窗格中。 有没有更好的方法来做到这一点?

创build一个JPanel,并添加你的单选button。 不要忘记将JPanel的布局设置为合适的。

然后调用panel.setBorder(BorderFactory.createTitledBorder(name));

其他人已经关于JPanel和使用TitledBorder,这很好。

但是,在使用Swing LayoutManagers时,您可能会发现烦恼不同的JPanel中的组件不能正确alignment(每个面板都有自己的LayoutManager)。

由于这个原因,这是一个很好的习惯(在Web上检查“JGoodies”以获得更多的细节)在Swing GUI中不使用TitledBorders,而是通过一个JLabel和一个水平的JSeparator在JPanel中分离组件组。

参考。 “ 摇摆急救 ”

分组框只是一组“逻辑分组的小部件”。 这个在摇摆的世界里是一个JPanel

将您的小部件添加到JPanel

将其边框types设置为“标题边框”,并给出标题,与VB6“框架”的名称相同。

瞧。 你有你的组框。

自从你提出了单选button,这里有一个来自JRadioButton javadoc的报价。

单选button的实现 – 可以select或取消select的项目,并将其状态显示给用户。 与ButtonGroup对象一起使用来创build一组button,一次只能select一个button。 (创build一个ButtonGroup对象并使用其add方法在组中包含JRadioButton对象。)

注:ButtonGroup对象是一个逻辑分组 – 不是物理分组。 要创build一个button面板,您仍然应该创build一个JPanel或类似的容器对象,并添加一个边框以将其从周围组件中设置。

不AFAIK,至less没有标准的摆动小部件。

在VB中你有一个组件,这实质上是一个面板+边框。

在Swing中,你有一个JPanel,它是一个容器部件,只有当你需要时才创build并设置一个边界对象。 人们可以争辩说,以一种更优雅的方式,因为你不支付你不使用的东西(例如边框)

我正在根据Uri的评论作出回应,其中解释了OP所指的Group Box

Uri:我想他是指你在许多对话框中看到的控制组,例如,在一些小部件(例如单选button)周围有一个正方形。

据我所知,每个JComponent都可以为自己设置一个边框,所以你不需要第二个面板。