60

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

我在 Swing 中找不到与 Group Box 等效的东西...

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

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

4

7 回答 7

119

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

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

于 2009-01-10T21:00:10.870 回答
8

其他人已经评论了 JPanel 并使用了 TitledBorder,这很好。

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

出于这个原因,在 Swing GUI 中不使用 TitledBorders 而是使用 JLabel 后跟水平 JSeparator 将 JPanel 中的组件组分开是一种很好的做法(有关更多详细信息,请查看 Web 上的“JGoodies”)。

参考。《秋千急救

于 2009-01-12T05:18:56.777 回答
3

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

将您的小部件添加到JPanel.

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

瞧。你有你的组框。

于 2009-01-10T21:02:56.340 回答
2

自从您提出单选按钮以来,这是来自 JRadioButton javadocs 的引述。

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

注意:ButtonGroup 对象是一个逻辑分组——不是物理分组。要创建一个按钮面板,您仍然应该创建一个 JPanel 或类似的容器对象,并为其添加一个 Border 以将其与周围的组件隔离开来。

于 2009-01-12T17:41:44.747 回答
1

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

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

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

于 2009-01-10T20:22:28.217 回答
0

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

在此处输入图像描述

于 2019-01-26T09:13:55.570 回答
-1

我根据 Uri 的评论做出回应,该评论解释了 OP 的含义Group Box

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

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

于 2009-01-10T20:25:42.687 回答