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