[英]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.