如何验证SWT文本框以允许其中包含'*'字符?

时间:2015-08-03 06:49:51

标签: java swt

我正在尝试验证SWT文本框只接受字母数字,“.”和“*”字符,因此用户可以输入通配符模式(例如*.txt )。

使用以下代码,我无法输入“*”字符(键盘的数字键盘中也带有*按钮)。请帮忙。

text.addVerifyListener(new VerifyListener() {
    @Override
    public void verifyText(VerifyEvent e) {
        e.doit=Character.isLetterOrDigit(e.character)
            ||e.keyCode=='.'
            ||e.keyCode=='*'
            ||e.keyCode==SWT.ARROW_LEFT
            ||e.keyCode==SWT.ARROW_RIGHT
            ||e.keyCode==SWT.BS;

    }
});

2 个答案:

答案 0 :(得分:3)

您正在针对某个字符测试keyCode字段 - 键代码值通常与字符值不同。所以使用:

|| e.character == '.'
|| e.character == '*'

或者如果您只想允许键盘。 *使用:

|| e.keyCode == SWT.KEYPAD_DECIMAL
|| e.keyCode == SWT.KEYPAD_MULTIPLY

答案 1 :(得分:0)

private void validateCharacaterspecials(){

News_Comments
- id (PK)
- newsID (FK News)
- userID
- timestamp
- text

Picture_Comments
- id (PK)
- pictureID (FK Picture)
- userID
- timestamp
- text