我是Java新手,在獲取某些代碼時遇到問題。我有一個字母A-Z的GUI。點擊按鈕後,我想要求一個Keyevent做幾件事:JavaFX在獲取僅一個字母數字字符後停止KeyEvent
- 只允許您選擇一個字母。大寫或小寫。如果不等待一個正確的迴應。
- 然後檢查字母表列表,看它是否被按下過。如果它再詢問另一個字母
- 如果輸入了一個新字符,請在字母表中輸出並運行以下方法
禁用任何其他鍵被按下。 我曾嘗試下面的代碼:
private static void spinGame(){ switch (wheelResult) { case "1' ... break; case "2": ... break; default: System.out.println("..."); newPhrase.gameB(); scene2.setOnKeyPressed((KeyEvent event) -> { if (event.getText().isEmpty()) return; char pressed = event.getText().toUpperCase().charAt(0); userGuess=event.getText().charAt(0); if ((pressed < 'A' || pressed > 'Z')) return; Text t = alphabet.get(pressed); if (t.isStrikethrough()) return; // mark the letter 'used' else{t.setFill(Color.BLUE); t.setStrikethrough(true); System.out.println(userGuess); } int letterCount; if ((userGuess == 'a') || (userGuess == 'e') || (userGuess == 'i') || (userGuess == 'o') || (userGuess == 'u')){ playerScores[currentPlayer] -= 250; System.out.println("£250 docked from score for vowel use"); }
它從這裏錯了。我不想要按鍵再次按下,我不應該運行以下方法:
letterCount = newPhrase.makeGuess(userGuess);
...my method....;
})
我不知道如何解決它。我測試並記錄了用戶猜測正在被選中,但它不會繼續執行方法,輸入鍵也不會停止。我也覺得我的字母數字編碼是錯誤的。
什麼你已經提供了看起來很好,雖然你可以做一些小的改變來濃縮它。除非您提供的代碼中沒有您遇到的問題?例如初始化「字母表」,我在測試時猜測 – Peter
設置了字母表。它取消並罰款。問題是我想停止關鍵事件,直到調用它的方法再次運行。 – mineshmshah
你的意思是你想在字母表中的每個字母都被正確猜測後停止檢查字母嗎? – Peter