Java 在给定字符数的情况下,如何查找JTextField的宽度?
我有一个JTextField,它可以接受固定数量的字符(例如10个字符)。我想限制文本字段的宽度,使其正好包含这么多字符。那么,给定字符的数量,有没有一种方法可以确定它所需要的宽度(像素)?假设我们知道字体。这将获得确切的宽度,尽管您需要一些额外的填充像素以使其美观Java 在给定字符数的情况下,如何查找JTextField的宽度?,java,user-interface,swing,Java,User Interface,Swing,我有一个JTextField,它可以接受固定数量的字符(例如10个字符)。我想限制文本字段的宽度,使其正好包含这么多字符。那么,给定字符的数量,有没有一种方法可以确定它所需要的宽度(像素)?假设我们知道字体。这将获得确切的宽度,尽管您需要一些额外的填充像素以使其美观 myJTextField.getFontMetrics(myFont).stringWidth(myString); 这种方法只适用于非比例字体。否则,您必须在字符集中找到“最大”的字符,以使框足够宽,可以容纳10个这种类型的字符
myJTextField.getFontMetrics(myFont).stringWidth(myString);
这种方法只适用于非比例字体。否则,您必须在字符集中找到“最大”的字符,以使框足够宽,可以容纳10个这种类型的字符 一种实用的方法是“猜测”一个宽字符并计算宽度,这样您就可以很好地预测文本字段是否足够大,以便进行常规输入。调整示例代码:
myJTextField.getFontMetrics(myFont).stringWidth("wwwwwwwwww);
用户界面将自动调整文本字段的大小。我相信它实际上使用了一个“W”作为大小字符,所以在大多数情况下它会比你需要的大。如果希望宽度精确,请使用单间距字体
JTextField textField = new JTextField(10);