如何验证 SWT 文本框以允许其中包含“*”字符?
how to validate SWT textbox to allow '*' character in it?
我正在尝试验证 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;
}
});
您正在针对字符测试 keyCode
字段 - 键码值通常与字符值不同。所以使用:
|| e.character == '.'
|| e.character == '*'
或者如果您只想允许键盘。 * 使用:
|| e.keyCode == SWT.KEYPAD_DECIMAL
|| e.keyCode == SWT.KEYPAD_MULTIPLY
private void validateCharacaterspecials() {
this.JText.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char keyChar = e.getKeyChar();
char c = e.getKeyChar();
system.out.println(e.getKeyChar());
if ("+/*-][|ª·$%&/()=?]'[!\"¿".contains(String.valueOf(c))) {
getToolkit().beep();
system.out.println("delete");
e.consume();
}
if (Character.isLowerCase(keyChar)) {
e.setKeyChar(Character.toUpperCase(keyChar));
}
}
});
}
我正在尝试验证 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;
}
});
您正在针对字符测试 keyCode
字段 - 键码值通常与字符值不同。所以使用:
|| e.character == '.'
|| e.character == '*'
或者如果您只想允许键盘。 * 使用:
|| e.keyCode == SWT.KEYPAD_DECIMAL
|| e.keyCode == SWT.KEYPAD_MULTIPLY
private void validateCharacaterspecials() {
this.JText.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char keyChar = e.getKeyChar();
char c = e.getKeyChar();
system.out.println(e.getKeyChar());
if ("+/*-][|ª·$%&/()=?]'[!\"¿".contains(String.valueOf(c))) {
getToolkit().beep();
system.out.println("delete");
e.consume();
}
if (Character.isLowerCase(keyChar)) {
e.setKeyChar(Character.toUpperCase(keyChar));
}
}
});
}