我正在用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