Java 如何强制调整JCheckBox的大小以防止单击空白?
当我在Swing应用程序中创建一个JCheckBox时,我会在它的标签后留下一些额外的空间,因此,如果JCheckBox标签的宽度为100像素,那么为了安全起见,我会将JCheckBox设置为120像素 问题在于,在运行时,如果用户可以单击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
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));