验证SWT文本中的字符串长度

时间:2014-11-13 09:48:56

标签: java swt

我的项目中有很多模块,在每个模块中我都有文本框。

我想验证输入(字母表)。为此,我必须写一个常用的方法。

需要一些例子。

提前致谢。

1 个答案:

答案 0 :(得分:3)

SWT.Verify上收听Text,然后检查您的情况。如果您想阻止给定的输入,请执行e.doit = false

以下示例允许Text中最多包含10个字符:

public static void main(String[] args)
{
    Display display = new Display();
    Shell shell = new Shell();
    shell.setText("StackOverflow");
    shell.setLayout(new GridLayout(1, false));

    final Text text = new Text(shell, SWT.BORDER);

    text.addListener(SWT.Verify, new Listener()
    {
        @Override
        public void handleEvent(Event e)
        {
            String oldS = text.getText();
            String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);

            if(newS.length() > 10)
                e.doit = false;
        }
    });

    shell.pack();
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }
    display.dispose();
}