天天看点

Kuix TextField 输入文字改变长度问题

Kuix TextField 输入文字后会依据文字的长度改变TextField长度的问题是因为TextField是从Text继承过的,解决这一问题修改 Text 类的getPreferredSize方法,代码如下

 public Metrics getPreferredSize(int preferredWidth) {

  Metrics metrics;

  if (needToComputePreferredSize(preferredWidth)) {

   metrics = super.getPreferredSize(preferredWidth);

   String text = getText();

   Font font = getFont();

   if (font != null) {

    if (text != null) {

                                        if(!(this instanceof TextField)){//修改地方

                                                metrics.width += font.stringWidth(text);

                                         }

    } else {

     metrics.width += font.charWidth(' ');

    }

    metrics.height += font.getHeight();

   }

  } else {

   metrics = getCachedMetrics();

  }

  return metrics;

 }