我只想在JavaSwing平台的文本字段中使用字母表、退格、删除和空格
这是我的节目:我只想在JavaSwing平台的文本字段中使用字母表、退格、删除和空格,java,Java,这是我的节目: private void nametextKeyTyped(java.awt.event.KeyEvent evt) { char c = evt.getKeyChar(); if(!(Character.isAlphabetic(c)) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE)
private void nametextKeyTyped(java.awt.event.KeyEvent evt)
{
char c = evt.getKeyChar();
if(!(Character.isAlphabetic(c)) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE) ||
(c==KeyEvent.VK_SPACE)){
getToolkit().beep();
evt.consume();
}
但当我按下“空格”键时,程序不起作用。它返回if语句,而backspace和delete则可以完美地执行。所以请帮我解释一下。感谢阅读……您的代码出现问题的原因在于
(
):
而不是:
if (!(Character.isAlphabetic(c)) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE) || (c==KeyEvent.VK_SPACE)){
getToolkit().beep();
evt.consume();
}
将其更改为:(仔细查看括号)
此
!(Character.isAlphabetic(c))
将返回TRUE表示空格。请注意前面的)
代码的问题在(
)上:
而不是:
if (!(Character.isAlphabetic(c)) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE) || (c==KeyEvent.VK_SPACE)){
getToolkit().beep();
evt.consume();
}
将其更改为:(仔细查看括号)
此
!(Character.isAlphabetic(c))
将返回TRUE表示空格。请注意前面的)
您的逻辑有问题:
if(!(Character.isAlphabetic(c)) || (c==KeyEvent.VK_BACK_SPACE)
|| (c==KeyEvent.VK_DELETE) || (c==KeyEvent.VK_SPACE)) {
如果字符不是字母字符,或者是退格、删除或空格,则会发出嘟嘟声
建议的解决方案,前提是如果不在上述范围内,您希望发出嘟嘟声:
private void nameTextKeyTyped(final KeyEvent event)
{
boolean doBeep = true;
final char c = event.getKeyChar();
switch (c) {
case KeyEvent.VK_BACK_SPACE:
case KeyEvent.VK_DELETE:
case KeyEvent.VK_SPACE:
doBeep = false;
break;
default:
doBeep = !Character.isAlphabetic(c);
// no need to "break;": last branch of switch
}
if (doBeep)
getToolkit.beep();
event.consume();
}
您的逻辑有问题:
if(!(Character.isAlphabetic(c)) || (c==KeyEvent.VK_BACK_SPACE)
|| (c==KeyEvent.VK_DELETE) || (c==KeyEvent.VK_SPACE)) {
如果字符不是字母字符,或者是退格、删除或空格,则会发出嘟嘟声
建议的解决方案,前提是如果不在上述范围内,您希望发出嘟嘟声:
private void nameTextKeyTyped(final KeyEvent event)
{
boolean doBeep = true;
final char c = event.getKeyChar();
switch (c) {
case KeyEvent.VK_BACK_SPACE:
case KeyEvent.VK_DELETE:
case KeyEvent.VK_SPACE:
doBeep = false;
break;
default:
doBeep = !Character.isAlphabetic(c);
// no need to "break;": last branch of switch
}
if (doBeep)
getToolkit.beep();
event.consume();
}
您似乎颠倒了
isAlphabetic()
test here wait,如果输入的字符在alpha等字符中还是不在alpha等字符中,是否要发出蜂鸣音?您似乎颠倒了isAlphabetic()
test hereWait,如果输入的字符在alpha等中还是不在alpha等中,您想发出嘟嘟声吗?谢谢,但前面的答案已经解决了我的问题,谢谢您的另一种方法。我真的很荣幸…谢谢,但前面的答案已经解决了我的问题,谢谢你的另一种方式。我真的很荣幸。。。