1

当我在我的 Swing 应用程序中创建 JCheckBox 时,我会在其标签之后留下一些额外的空间,因此如果 JCheckBox 标签的宽度为例如 100 像素,我将 JCheckBox 设置为 120 像素以确保安全。

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

http://imgur.com/3eMUG.png

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

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

编辑 - 更多细节:

我使用FormLayout,我定义JCheckBox这样的:

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

3 回答 3

1

完全适合其中的文本,具体取决于使用的字体类型/大小

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

于 2010-06-12T16:26:12.023 回答
1

@trashgod 是正确的。如果您想要填充、对齐或间距以达到美学目的,您应该使用布局管理器来实现这一点,而不是弄乱组件本身。几乎任何您想要实现的布局都可以通过这种方式完成。您可能需要使用GridBagLayout,这可能会很痛苦,但它是最灵活的。

于 2010-06-13T17:47:18.987 回答
0

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

contentPane.add(checkBox1, con.xywh(3, 13, 10, 1, CellConstraints.LEFT, CellConstraints.DEFAULT));
于 2010-06-14T05:31:03.967 回答