我有一个JTextField可以接受固定数量的字符(例如10个字符)。我想限制TextField的宽度以准确地采用那么多字符。所以给定no.of字符,有没有办法找出它将采取的宽度(像素)?假设我们知道字体。
答案 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”作为大小调整字符,所以在大多数情况下它会比你需要的大。如果您希望宽度精确,请使用等宽字体。