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

时间:2010-08-31 05:56:10

标签: java user-interface swing

我有一个JTextField可以接受固定数量的字符(例如10个字符)。我想限制TextField的宽度以准确地采用那么多字符。所以给定no.of字符,有没有办法找出它将采取的宽度(像素)?假设我们知道字体。

3 个答案:

答案 0 :(得分:5)

这将为您提供准确的宽度,但您需要一些额外的填充像素才能使其漂亮。

myJTextField.getFontMetrics(myFont).stringWidth(myString);

答案 1 :(得分:4)

这种方法仅对非比例字体有意义。否则你必须找到字符集中的“最大”字符,以使盒子足够宽,可以容纳10个这种类型的字符。

一种实用的方法是“猜测”一个宽字符并计算宽度,这样你就可以很好地预测文本字段对于通常的输入来说足够大了。调整lins314159示例代码:

myJTextField.getFontMetrics(myFont).stringWidth("wwwwwwwwww);

答案 2 :(得分:0)

JTextField textField = new JTextField(10);

UI会自动调整文本字段的大小。我相信它实际上确实使用“W”作为大小调整字符,所以在大多数情况下它会比你需要的大。如果您希望宽度精确,请使用等宽字体。

相关问题