无法获取 BACKSPACE 密钥以在处理 3.0.1 Java 模式下注册



我以前从未遇到过这样的问题,可能只是在某处犯了一个非常简单的错误,但我一生都无法识别除字母数字字符和符号之外的任何东西。退格/删除未注册。我尝试使用键变量和键代码,但似乎没有任何效果。

我尝试过的事情:

key == BACKSPACE
int(key) == 8
keyCode == DELETE

没有任何效果。当我尝试println(key)时,它们返回 null

这是我的代码。这只是一个片段,程序的其余部分包括其他几种方法,并包含一个 draw(( 循环。我已经将问题缩小到这个块。

void keyTyped() {
  if (key == '`' || key == '~') {
    consoleShow = !consoleShow; //toggle boolean
    command = ""; //clear command string
  } else if (keyCode == DELETE) { //   --NOT WORKING--
    command = command.substring(0, command.length()-1);
  } else if (consoleShow == true && key != CODED) { // "key != CODED" isn't working either. (CAPS-LOCK is recognized as a char)
    command += key; //concatenate character to end of command string
  }
  println(key);
}

问题是你没有一个draw()循环来保持程序的活动并保持键侦听器的活动。因此,只需void draw() {}放在程序的开头,它就会起作用。

如果您只想使用退格键,尽管您可以使用更少的代码来实现它:

void draw() {}
void keyTyped() {
  if (key == BACKSPACE) println("You typed the key backspace :)");
}

我修复了它。 keyTyped()是不可靠的。当更换为keyPressed()一切正常时。

最新更新