我正在用JavaFX進行Java語言的打字測試。我想比較在TextField中鍵入的文本與定義的隨機單詞。但是,TextField只會隨着剛輸入的字母而不是所有的時間更新。以下代碼是發生此問題的位置。調用setOnKeyTyped中的TextField文本的不一致性
field.setOnKeyTyped(e -> {
String typingWord = field.getText();
if( typingWord.isEmpty() &&
e.getCharacter().charAt(0) == '\b' &&
!(typedWords.size() == 0) &&
typingWord.equals(previousWord)){
field.setText(typedWords.get(typedWords.size() - 1));
typedWords.remove(typedWords.size() - 1);
field.positionCaret(typingWord.length());
index--;
}
//compare random words to typed words
if (Character.isWhitespace(e.getCharacter().charAt(0))) {
typedWords.set(index, typingWord);
field.clear();
e.consume();
index++;
}
previousWord = field.getText();
});
這是純粹是由於我的電腦速度還是它只是JavaFX中的錯誤?
對不起,我無法讀取if語句。我將這個動作設置爲onkeypressed(),但這只是使問題更加穩定。它不會更新field.getText()與我按下的字符,直到事實發生。 onkeyreleaced()工作正常,但我無法測試我剛剛按下的字符。所以我無法測試它是否是一個空間,所以我可以清除這個區域。 –
我將刪除該評論。 – Elltz