如何强制调整 JCheckBox 的大小以防止单击空白区域?
当我在 Swing 应用程序中创建 JCheckBox 时,我在其标签后留了一些额外的空间,因此,如果 JCheckBox 标签的宽度为 100 像素,为了安全起见,我将 JCheckBox 设为 120 像素。
问题是在运行时,用户可以单击 JCheckBox 标签后面的空白区域并且可以实际单击它,这并不好,如下所示:
我想知道是否有一种方法可以在运行时调整 JCheckBox 的大小以完全适合其中的文本,具体取决于字体类型/大小用过吗?
这看起来有点花哨,但我喜欢让事情看起来很完美:)
编辑 - 更多细节:
我使用FormLayout
,我定义 JCheckBox
如下:
CellConstraints con = new CellConstraints();
contentPane.add(checkBox1, con.xywh(3, 13, 10, 1));
When i create a JCheckBox in my Swing application i leave some extra space after its label, so if the JCheckBox label is for example 100 pixels width, i make the JCheckBox 120 pixels for safety.
The problem as at runtime, it's not nice that a user can click on the empty space after the JCheckBox label and it can be actually clicked, like this :
I wonder if there is a way to resize the JCheckBox at runtime to exactly fit the text inside it, depending on the font type/size used ?
This seems fancy a bit, but i like to make things look perfect :)
Edit - More details :
I use FormLayout
, and I define the JCheckBox
like this :
CellConstraints con = new CellConstraints();
contentPane.add(checkBox1, con.xywh(3, 13, 10, 1));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是
JCheckBox
的默认首选大小;只是不要改变它。This is the default preferred size of
JCheckBox
; just don't change it.@trashgod 是正确的。如果您想要填充、对齐或间距以达到美观目的,您应该使用布局管理器来实现此目的,而不是弄乱组件本身。几乎任何您想要实现的布局都可以通过这种方式完成。您可能需要使用
GridBagLayout
,这可能很痛苦,但它是最灵活的。@trashgod is correct. If you want padding, aligning, or spacing to aesthetic purposes, you should use the layout managers to achieve this and not mess with the components themselves. Pretty much any layout you want to achieve can be done this way. You may need to use
GridBagLayout
, which can be a pain, but it's the most flexible.好的...谢谢大家的回答。
我在使用 FormLayout 时找到了合适的解决方案:
Okay ... Thanks all for your answers.
I have found a suitable solution while using FormLayout :