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;
}