4

在我的 Java 应用程序中,我试图创建一个非常简单的表单,在表单的每一行上都有一个标签和一组控件。想象一下像这样粗略的 ASCII 图:

   结果 1: (*) 通过 ( ) 失败
   结果 2: ( ) 通过 (*) 失败
错误计数:[10______]
解释:[运算符重载___]

令人讨厌的是,JRadioButtons 并没有与其他控件对齐,因为它们周围有大量的填充,将它们向右推几个像素并在行之间增加了很多空间。我最终得到这样的结果:

   结果 1: (*) 通过 ( ) 失败

   结果 2: ( ) 通过 (*) 失败

错误计数:[10______]
解释:[运算符重载___]

我怎样才能让单选按钮停止有这么多的空白空间,以便它们可以与其他所有东西很好地对齐?如果重要的话,这就是使用 GTK L&F;我还没有尝试在 Windows 下运行该程序。

4

3 回答 3

2

看起来有两个罪魁祸首:

  1. JPanel包含两个单选按钮的 mini-FlowLayout默认为在每个组件周围添加 5 个像素的填充。

  2. 这样做radioButton.setBorder(null)消除了按钮周围另一个像素的空间。但是,当它们聚焦时,它也会破坏围绕它们绘制的虚线。

于 2009-08-14T22:18:19.637 回答
0

使用 GridBagLayout,并确保根据需要将单元格(每个标签和复选框都有自己的单元格)向左或向右锚定。标签将右对齐,复选框将左对齐。

由于手动自定义 GridBagLayouts 很麻烦,我建议使用 NetBeans GUI 构建器并使用其图形“自定义”工具调整它们。

于 2009-08-14T22:18:48.683 回答
0

另一种解决方案是更改边距(radionbuttons 的 setMargin 方法)。这应该可以完成这项工作。唯一的缺点是不同 LAF 的边距/插图会有所不同。

于 2009-08-15T17:29:17.077 回答