Java: определить, прекратил ли пользователь печатать - PullRequest
0 голосов
/ 06 октября 2011

Я создаю простой текстовый редактор на Java и пытаюсь добавить функции отмены и повтора.Я хочу, чтобы программа могла определять, прекратил ли пользователь ввод текста в текстовой области, а не только ввел ли он символ.Программа должна сохранять один символ только в том случае, если это был единственный набранный текст.Как бы вы поступили так?

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Определите «перестал печатать».

По сути, я бы подумал об использовании таймера.Возьмите каждое событие персонажа, добавьте счетчик и таймер, который перезапускается каждый раз, когда происходит событие Key Up.Определите «перестал печатать», как когда прошло достаточно времени.

Тогда подумайте, если вы действительно хотите сделать это таким образом, потому что это звучит как что-то, что может привести меня в чувство.- вилы для разработчиков - безумные.

0 голосов
/ 06 октября 2011

где-то в главном классе;

public static long lastKeyPressTime = 0l;

в интерфейсе KeyListener;

public void keyPressed(KeyEvent evt) {
   lastKeyPressTime = System.currentTimeMillis();
}

и, наконец, в соответствующем быстродействующем потоке;

if((system.currentTimeMillis() - lastKeyPressTime) > 2000) {
   //do something, because the user hasnt typed for two seconds
}
...