我在获取SWT文本的文本值时遇到问题。 我的要求是验证文本内容的长度。不应输入用户名 文本字段中超过3个字符。我写了下面的代码。问题是 当我输入第一个值为1时,它给我空值。 下次输入值2时,它给出值1。
text.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
System.out.println("verifyText()");
Text text = (Text) e.getSource();
String text2 = text.getText();
} }
以下是我的代码。如何重新解决这个问题?
答案 0 :(得分:1)
您可以使用Text#setTextLimit(int)
来限制Text
中允许的字符数。
但是如果你想进行额外的验证,你可以这样做:
text.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
String oldS = ((Text)e.widget).getText();
String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);
if(newS.length() > LIMIT)
e.doit = false;
}
});