Есть ли простой способ получить символы с клавиатуры, не нажимая ввод в Java? - PullRequest
1 голос
/ 13 ноября 2009

Я хотел бы знать, есть ли простой способ получить ввод символов из JTextField в Java по мере их появления, а не после нажатия клавиши ввода.

В моем случае я хочу, чтобы символы (текст) читались, а когда нажата клавиша ввода, сделайте что-нибудь с уже собранными символами.

Ответы [ 4 ]

7 голосов
/ 13 ноября 2009

Попробуйте добавить KeyListener на JTextField

3 голосов
/ 13 ноября 2009

Хотя существуют способы прослушивания событий нажатия клавиш, похоже, что для задачи, которую вы хотите выполнить, следует подождать до нажатия клавиши ввода и затем сделать то, что вам нужно сделать, ссылаясь на значение поля jtext. Поле jtext уже считывает символы, которые вводит пользователь, вам не нужен пользовательский обработчик для его дублирования (если только вы действительно не хотите делать это символ за символом и включать нетекстовые символы (например, «heg [backspace] llo [ enter] "как-то трактуется иначе, чем" hello [enter] ").

1 голос
/ 13 ноября 2009

Может ли пользователь вставлять текст? (Могут ли они щелкнуть правой кнопкой мыши и выбрать вставить?)

Если это так, KeyListeners не будут работать, и вам понадобятся DocumentListeners.

1 голос
/ 13 ноября 2009

Вы можете добавить DocumentListener к документу JTextField, т.е.

textField.getDocument().addDocumentListener(...);
...