2010-12-03 2 views
0

하나의 타이머는 .. -.-여러 통화, 내가 먼저 아주 쉽게 줄 알았는데 몇 시간 동안이 자바의 문제를 싸워 봤는데

문제는 내가 텍스트 필드 .. 때마다 사용자를 가지고있다 필드에 문자를 쓰면 메서드가 호출됩니다. 것은 타이머를 구현하고 싶습니다. 시간은 예를 들어 5 초로 설정됩니다. 사용자가 기록 할 때마다 타이머가 재설정됩니다. 그 말은 .. 사용자가 5 초 동안 아무것도 쓰지 않으면 메서드가 호출됩니다 ..

스레드, 타이머, timertask 등을 사용해 보았습니다. Google에서 정말 timertask를 수정할 수는 있지만, 매번 새로운 것을 시작하는 것.

도와 주시겠습니까?

답변

0

예, 매번 새로운 Timer/TimerTask를 중단하고 생성해야합니다. 일시 중지하거나 재설정 할 수있는 방법은 없습니다. 타이밍 요구 사항이 얼마나 어려운지에 따라 매초마다 한 번씩 실행되는 타이머를 실행하고 실제로 입력해야 할 사항을 결정하기 위해 마지막 문자를 입력 한 시간을보고이 문제를 해결할 수 있습니다.

이렇게하면 모든 키 누르기에 대해 새 스레드를 시작하고 이전 스레드를 끝내지 않으므로 오버 헤드가 크게 줄어 듭니다. 제거/추가되는 텍스트를 듣고

Resettable Java Timer

0

를 사용하여 A의 DocumentListener : 당신이 적어도 자바 5 귀하의 처분에있는 경우 또한

은 더 나은 대안이 질문에 봐주십시오 JTextField.

그런 다음 스윙 타이머를 사용할 수 있습니다. 그것은 restart() 메소드를 가지고 있습니다.

관련 문제