代码之家  ›  专栏  ›  技术社区  ›  amit

如何找到给定JTextField的宽度数量角色?

  •  4
  • amit  · 技术社区  · 14 年前

    我有一个JTextField,它可以接受固定数量的字符(例如10个字符)。我想限制TextField的宽度,使其正好包含这么多字符。所以考虑到数量字符,有没有办法找出它需要的宽度(像素)?假设我们知道字体。

    3 回复  |  直到 14 年前
        1
  •  5
  •   lins314159    14 年前

    这将得到确切的宽度,但你需要一些额外的像素填充,使它漂亮。

    myJTextField.getFontMetrics(myFont).stringWidth(myString);
    
        2
  •  4
  •   Community Egal    7 年前

    这种方法只适用于非比例字体。否则,您必须在字符集中找到“最大”的字符,以使框足够宽,可以容纳10个这种类型的字符。

    一个实用的方法是“猜测”一个宽字符并计算宽度,这样你就有了一个很好的可能性,即文本字段将足够大,可以用于通常的输入。适应 lins314159 示例代码:

    myJTextField.getFontMetrics(myFont).stringWidth("wwwwwwwwww);
    
        3
  •  0
  •   camickr    14 年前
    JTextField textField = new JTextField(10);