Java 如何强制调整JCheckBox的大小以防止单击空白?

Java 如何强制调整JCheckBox的大小以防止单击空白?,java,swing,resize,jcheckbox,Java,Swing,Resize,Jcheckbox,当我在Swing应用程序中创建一个JCheckBox时,我会在它的标签后留下一些额外的空间,因此,如果JCheckBox标签的宽度为100像素,那么为了安全起见,我会将JCheckBox设置为120像素 问题在于,在运行时,如果用户可以单击JCheckBox标签后面的空白区域,并且可以实际单击它,这是不好的,如下所示: CellConstraints con = new CellConstraints(); contentPane.add(checkBox1, con.xywh(3, 13, 1

当我在Swing应用程序中创建一个JCheckBox时,我会在它的标签后留下一些额外的空间,因此,如果JCheckBox标签的宽度为100像素,那么为了安全起见,我会将JCheckBox设置为120像素

问题在于,在运行时,如果用户可以单击JCheckBox标签后面的空白区域,并且可以实际单击它,这是不好的,如下所示:

CellConstraints con = new CellConstraints();
contentPane.add(checkBox1, con.xywh(3, 13, 10, 1));

我想知道是否有一种方法可以在运行时调整JCheckBox的大小,以完全适应其中的文本,具体取决于使用的字体类型/大小?

这似乎有点花哨,但我喜欢让事情看起来完美:)

编辑-更多详细信息:

我使用并定义
JCheckBox
,如下所示:

CellConstraints con = new CellConstraints();
contentPane.add(checkBox1, con.xywh(3, 13, 10, 1));
根据所使用的字体类型/大小,精确匹配其中的文本


这是默认的首选大小
JCheckBox
;只是不要改变它

垃圾神是对的。如果希望填充、对齐或间距达到美观目的,则应使用布局管理器来实现这一点,而不要弄乱组件本身。几乎任何你想要实现的布局都可以这样做。您可能需要使用
GridBagLayout
,这可能会让您感到痛苦,但它是最灵活的。

好的。。。谢谢大家的回答。 我在使用FormLayout时找到了一个合适的解决方案:

contentPane.add(checkBox1, con.xywh(3, 13, 10, 1, CellConstraints.LEFT, CellConstraints.DEFAULT));