为什么我仍然可以在jtextfield中输入这个特殊字符“`”,“_”和“^”。用这个
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
if (!((c >= 'A') && (c <= 'z') ||
(c == KeyEvent.VK_SPACE)||
(c == KeyEvent.VK_MINUS)||
(c == KeyEvent.VK_BACK_SPACE) ||
(c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
evt.consume();
}
答案 0 :(得分:1)
因为这些字符的代码介于&#39; Z&#39;和&#39; a&#39;什么满足你的第一个条件(c >= 'A') && (c <= 'z')
:
DEC HEX BIN CHR
...
88 58 01011000 X
89 59 01011001 Y
90 5A 01011010 Z
91 5B 01011011 [
92 5C 01011100 \
93 5D 01011101 ]
94 5E 01011110 ^ <---
95 5F 01011111 _ <---
96 60 01100000 ` <---
97 61 01100001 a
98 62 01100010 b
99 63 01100011 c
...
这六个字符填补了32个字符,因为字母表只有26个字母,但我们希望让a
代码01100001
(如A
{ {1}})。通过这种方式,人类可以(并且仍然)更容易阅读。