2010-12-03 1 views
0

1つのタイマーが.. -.-複数の呼び出し、私は私が最初に非常に簡単だと思ったいくつかの時間、このJavaの問題を苦労してきた

問題は、私は、テキストフィールド..たびにユーザーを持っているということですフィールドに文字を書き込むと、メソッドが呼び出されます。事は私がタイマーを実装したいということです。時間は、例えば5秒に設定される。ユーザーが書き込むたびに、タイマーがリセットされます。つまり、このメソッドは、ユーザが5秒間何かを書いた場合にのみ呼び出されます。

私はスレッド、タイマー、タイムシートなどを使って試しました。私はgoogleであなたが本当にタイムアタックを変更すると、毎回新しいものを開始する。

私を助けることができますか?

答えて

0

はい、毎回新しいTimer/TimerTaskを中止して作成する必要があります。実行すると一時停止またはリセットする方法がありません。タイミング要件の厳しさに応じて、毎秒1回発生するタイマーを実行し、実際に何かをする必要があるかどうかを判断するために最後の文字が入力された時刻を調べることで回避できます。

これにより、すべてのキーを押すたびに新しいスレッドを開始し、前のスレッドを終了しないため(これはTimerの機能です)、オーバーヘッドが大幅に削減されます。から削除/追加されているテキストをリッスンするために

Resettable Java Timer

0

使用DocumentListener:あなたは、少なくともJava 5のあなたの処分で持っている場合にも

は、より良い代替のため、この質問を見てください。 JTextField

次に、スイングタイマーを使用できます。それはrestart()メソッドを持っています。

関連する問題