簡體   English   中英

檢測需要按下Shift鍵的鍵事件

[英]Detecting KeyEvents for keys that require Shift to be pressed

我對(scene).setOnKeyPressed()有疑問。 我正在嘗試制作一個簡單的計算器,但是按鍵代碼發生了一些奇怪的事情。

這是我的代碼的一小部分:

switch (KeyEvent.getCode()) {
    case PLUS:
      plus.fire();
      break;
    case MINUS:
      min.fire();
      break;
    case EQUALS:
      // something
}

所以,一切都很好用- ,而是因為你需要按下Shift+鍵(至少在我的鍵盤),它不走的+ -案例,而它進入= -案例(這是鍵盤上+下方 )。

我有什么辦法可以檢測到需要先按Shift鍵的鍵的按下鍵?

對於具有有效鍵輸出的任何鍵按下(例如+,-,=),將生成3個鍵事件(KEY_PRESSED,KEY_TYPED,KEY_RELEASED)。 確保調用KEY_TYPED事件在開關盒內進行處理。

    if(keyEvent.getKeyCode() != KeyEvent.VK_UNDEFINED) { // this will only process KEY_TYPED event
    switch (KeyEvent.getCode()) {
        case PLUS:
          plus.fire();
          break;
        case MINUS:
          min.fire();
          break;
        case EQUALS:
          // something
     }
   }

所以這是我對問題的答案:

它有效,但是有什么好處嗎? 是否有更好的解決方案?

    case EQUALS:
      if(KeyEvent.isShiftDown())
        plus.fire();
        break;
      else
        equals.fire();
        break;
      break;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM