天天看點

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;

 }