没有得到swt文本字段的内容长度

时间:2015-12-02 10:56:42

标签: java swt verification

我在获取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();

} }

以下是我的代码。如何重新解决这个问题?

1 个答案:

答案 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;
    }  
});