有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSwing中是否有一个“组框”等价物?

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

我在Swing里找不到一个相当于组框的东西

有了一个组框,就有了一个方形框(通常带有标题)围绕着几个相关的小部件。一个例子是围绕几个单选按钮的分组框(标题解释了单选按钮的含义,例如,标题为“性别”的分组框中有“男性”和“女性”单选按钮)

我到处找了找。。。我找到的唯一方法是添加一个子窗格,在子窗格上设置边框,然后将“组”中的所有小部件添加到子窗格中。有没有更优雅的方法


共 (6) 个答案

  1. # 1 楼答案

    这里引用了jradiobuttonjavadocs,因为您提到了单选按钮

    An implementation of a radio button -- an item that can be selected or deselected, and which displays its state to the user. Used with a ButtonGroup object to create a group of buttons in which only one button at a time can be selected. (Create a ButtonGroup object and use its add method to include the JRadioButton objects in the group.)

    Note: The ButtonGroup object is a logical grouping -- not a physical grouping. To create a button panel, you should still create a JPanel or similar container-object and add a Border to it to set it off from surrounding components.

  2. # 2 楼答案

    其他人已经对JPanel进行了交流,并使用了标题边框,这很好

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

    因此,在Swing GUI中,最好不要使用标题边框,而是在JPanel中使用JLabel和水平JSepator来分隔组件组,这是一种很好的做法(有关更多详细信息,请查看web上的“JGoodies”)

    参考文件“First Aid for Swing

  3. # 3 楼答案

    不是AFAIK,至少不是标准swing小部件

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

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

  4. # 4 楼答案

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

    将小部件添加到JPanel

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

    瞧。你有你的分组箱

  5. # 5 楼答案

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

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

  6. # 6 楼答案

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

    enter image description here