JavaSwing中是否有一个“组框”等价物?
正在尝试用Java/Swing构建GUI应用程序。我主要习惯于用VB(或者更准确地说,Gupta SQLWindows…不知道有多少人知道这是什么;-)等工具在Windows端“绘制”GUI
我在Swing里找不到一个相当于组框的东西
有了一个组框,就有了一个方形框(通常带有标题)围绕着几个相关的小部件。一个例子是围绕几个单选按钮的分组框(标题解释了单选按钮的含义,例如,标题为“性别”的分组框中有“男性”和“女性”单选按钮)
我到处找了找。。。我找到的唯一方法是添加一个子窗格,在子窗格上设置边框,然后将“组”中的所有小部件添加到子窗格中。有没有更优雅的方法
# 1 楼答案
这里引用了jradiobuttonjavadocs,因为您提到了单选按钮
# 2 楼答案
其他人已经对JPanel进行了交流,并使用了标题边框,这很好
但是,在使用Swing LayoutManager时,您可能会发现不同JPanel中的组件无法正确对齐(每个面板都有自己的LayoutManager),这很烦人
因此,在Swing GUI中,最好不要使用标题边框,而是在JPanel中使用JLabel和水平JSepator来分隔组件组,这是一种很好的做法(有关更多详细信息,请查看web上的“JGoodies”)
参考文件“First Aid for Swing”
# 3 楼答案
不是AFAIK,至少不是标准swing小部件
在VB中,您有一个组小部件,它本质上是一个面板+边框
在Swing中,您有一个JPanel,它是容器小部件,只有在需要时才在其上创建和设置边界对象。有人可能会争辩说,由于你不为你不使用的东西付费(例如,边界),因此这种方式更加优雅
# 4 楼答案
组框只是一组“逻辑分组的小部件”。 这在摇摆世界中是一个
JPanel
将小部件添加到
JPanel
将其边框类型设置为“标题边框”,并给出与VB6“框架”名称相同的标题
瞧。你有你的分组箱
# 5 楼答案
创建一个JPanel,并将您的单选按钮添加到其中。不要忘记将JPanel的布局设置为适当的
然后调用
panel.setBorder(BorderFactory.createTitledBorder(name));
# 6 楼答案
正如David Koelle提到的通过java代码设置边界,您也可以在设计器模式下获得类似的结果