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

时间:2009-01-10 20:14:58

标签: java swing grouping

尝试在Java / Swing中构建GUI应用程序。我主要习惯使用像VB这样的工具在Windows上“绘制”GUI(或者更确切地说,Gupta SQLWindows ......想知道有多少人知道那是什么;-))。

我在Swing中找不到相应的Group Box ...

使用分组框,您可以在几个相关的小部件周围放置一个方框(通常带有标题)。一个例子是围绕几个单选按钮的分组框(标题解释单选按钮的内容,例如Group Box标题为“Sex”,带有“Male”和“Female”单选按钮)。

我搜索了一下......我找到的唯一方法是添加子窗格,在子窗格上设置边框,然后将“组”中的所有窗口小部件添加到子窗格。有更优雅的方式吗?

7 个答案:

答案 0 :(得分:114)

创建一个JPanel,并将radiobuttons添加到其中。不要忘记将JPanel的布局设置为适当的。

然后拨打panel.setBorder(BorderFactory.createTitledBorder(name));

答案 1 :(得分:7)

其他人已经对JPanel和使用TitledBorder感到满意,这很好。

但是,在使用Swing LayoutManagers时,您可能会发现不同JPanel中的组件无法正确对齐(每个面板都有自己的LayoutManager)令人讨厌。

出于这个原因,最好在Swing GUI中检查(在网上查看“JGoodies”)以不使用TitledBorders,而是通过JLabel后跟水平JSeparator在JPanel中分离组件组。 / p>

参考。 “First Aid for Swing

答案 2 :(得分:3)

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

将您的小部件添加到JPanel

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

瞧。你有你的组合框。

答案 3 :(得分:2)

这是自你带来单选按钮以来JRadioButton javadocs的引用。

  

单选按钮的实现 - 可以选择或取消选择的项目,并向用户显示其状态。与ButtonGroup对象一起使用以创建一组按钮,其中一次只能选择一个按钮。 (创建一个ButtonGroup对象并使用其add方法在组中包含JRadioButton对象。)

     

注意:ButtonGroup对象是逻辑分组 - 而不是物理分组。要创建按钮面板,您仍应创建JPanel或类似的容器对象,并为其添加边框以将其与周围组件关联。

答案 4 :(得分:1)

不是AFAIK,至少不是标准的摆动小部件。

在VB中你有一个组小部件,它本质上是一个面板+边框。

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

答案 5 :(得分:1)

正如David Koelle提到的通过Java代码设置边框一样,您也可以在设计器模式下获得类似的结果。

enter image description here

答案 6 :(得分:-1)

我的回答基于Uri的评论,该评论解释了Group Box对OP的意义:

  

Uri:我认为他意味着你在许多对话框中看到的控制组,例如,你在一堆小部件(例如单选按钮)周围有一个正方形。

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