如何在没有字符数的情况下找到JTextField的宽度?

4

我有一个JTextField,它可以接受固定数量的字符(例如10个字符)。我想限制TextField的宽度,使其正好占据那么多个字符。因此,给定字符数,有没有办法找出它将占用的宽度(像素)?假设我们知道字体。

3个回答

5
这将为您提供确切的宽度,但是您需要一些额外的填充像素来使其更美观。
myJTextField.getFontMetrics(myFont).stringWidth(myString);

4
这种方法只适用于不成比例的字体。否则,您需要找到字符集中“最大”的字符,以使框足够宽,可以容纳10个此类型的字符。
一个实用的方法是“猜测”一个宽字符并计算宽度,以便您有很好的概率使文本字段足够大以容纳通常的输入。调整lins314159示例代码:
myJTextField.getFontMetrics(myFont).stringWidth("wwwwwwwwww);

0
JTextField textField = new JTextField(10);

UI 将自动调整文本字段的大小。我相信它实际上使用 "W" 作为尺寸字符,因此在大多数情况下它会比您需要的要大。如果您想要精确的宽度,则请使用等宽字体。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接