0
我一直在試圖找到一些關於我的錯誤的信息,但幾個小時後卻找不到任何相關的信息。第一個關鍵事件跳過這個過程
我在控制器類中使用這種關鍵事件處理方法。 onKeyPressed位於根BorderPane上的fxml文件中。主要課程是標準課程。
此方法是我的計算器應用程序的一部分,它從keyCode中提取一個字符並將其傳遞給其他方法。
問題是,正如在調試過程中看到的,在第一次按鍵時,它甚至不會嘗試生成返回的字符串,而是直接跳轉到方法的結尾。按下的所有其他鍵均正常處理。
如果我在最後一個花括號之前印刷了一些東西,它只會在第一個按鍵上按下時印在控制檯上。
這是問題的方法:
public void handleKeys() {
container.setOnKeyPressed(key -> {
String returned = key.getCode().toString().toLowerCase();
char chr = '0';
switch (returned) {
case "add":
chr = '+';
break;
default:
if (Character.toString(returned.charAt(returned.length() - 1)).matches("\\d") && returned.charAt(returned.length() - 2) != 'f') {
chr = returned.charAt(returned.length() - 1);
break;
}
}
handleSymbols(chr);
});
}
從我的理解,在第一次按鍵setOnKeyPressed方法進行初始化,它跳過下面的代碼。我想我應該以某種方式將最後一個花括號轉換回 鍵 - > {part。但是如何?
是的,它真的有效!感謝您節省我的時間和頭痛! –