在我的Java应用程序中,我试图创建一个非常简单的表单,在表单的每一行上都有一个标签和一组控件。想象一下这个粗略的ASCII图:
Result 1: (*) pass ( ) fail Result 2: ( ) pass (*) fail Error Count: [10______] Explanation: [Operator overload___]
令人讨厌JRadioButton
s与其他控件没有排列,因为它们周围有大量的填充,将它们向右推几个像素并在行之间添加大量空间。我最终得到这样的东西:
Result 1: (*) pass ( ) fail Result 2: ( ) pass (*) fail Error Count: [10______] Explanation: [Operator overload___]
如何让单选按钮停止拥有如此多的空白空间,以便与其他所有内容完美排列?如果重要,那就是使用GTK L& F;我没有尝试在Windows下运行该程序。
答案 0 :(得分:2)
看起来有两个罪魁祸首:
包含两个单选按钮的迷你版JPanel
有FlowLayout
,默认情况下在每个组件周围添加5个像素的填充。
执行radioButton.setBorder(null)
可以消除按钮周围另一个像素的空间。但是,当它们有焦点时,它还会拧紧围绕它们绘制的虚线。
答案 1 :(得分:0)
使用GridBagLayout,并确保根据需要向左或向右锚定单元格(每个标签和复选框都有自己的单元格)。标签是右对齐的,复选框是左对齐的。
由于手动定制GridBagLayouts很麻烦,我建议使用NetBeans GUI构建器并使用其图形化的“自定义”工具进行调整。
答案 2 :(得分:0)
另一个解决方案是改变边距(radionbuttons的setMargin方法)。这应该做的工作。唯一的缺点是不同的LAF的利润/插入不同。