여기 내 상황이 있습니다 : 자바 타이핑 게임을 개발 중이며 JTextField에 가장 적합한 수신기를 찾아야합니다.타이핑 게임에서 JTextField를 위해 어떤 리스너를 사용해야합니까?
JTextField typeBox;
청취자는, 사용자의 입력을 감지 처리를위한 주요 게임 부분에있는 상자 안의 텍스트를 보내고, 단어의 끝이 도달하면, 유형 상자 이을 삭제해야 할 수 있어야한다 (따라서 사용자는 일반적인 타이핑 게임 에서처럼 한 번에 한 단어 씩 입력 할 수 있습니다). 나는 모든 KeyListener
사용자가 새 키가 손실되어, 키를 해제하지 않고 단어의 결말에 도달하고, 즉시 다른 키를 입력 할 때 이것의 문제가public class TypeBoxListener implements KeyListener
{
@Override
public void keyPressed(KeyEvent arg0) {
}
@Override
public void keyReleased(KeyEvent arg0) {
if (arg0.getKeyChar() == arg0.CHAR_UNDEFINED) return;
String typedText = typeBox.getText();
thisGUI.processUserInput(typedText);
}
@Override
public void keyTyped(KeyEvent arg0) {
}
}
을 시도했습니다.
나는 또한 내가 IllegalStateException가가를 수정하려고 얻을 것이기 때문에이 방법은 훨씬 더 반응의 keyReleased은, 그러나, 나는이 방법을 사용하여 텍스트 상자를 지울 수 없습니다 사용하는 것보다의 DocumentListener
public class TypeBoxListener implements DocumentListener
{
@Override
public void changedUpdate(DocumentEvent arg0) {
}
@Override
public void insertUpdate(DocumentEvent arg0) {
String typedText = paragraphPanel.typeBox.getText();
thisGUI.processUserInput(typedText);
}
@Override
public void removeUpdate(DocumentEvent arg0) {
String typedText = paragraphPanel.typeBox.getText();
thisGUI.processUserInput(typedText);
}
}
시도 DocumentListener 내부의 문서.
답변 해 주셔서 감사합니다. 나는 당신의 제안을 들여다 볼 것입니다. – hoangbv15
그것은 일했다! 대단히 감사합니다. – hoangbv15