-1

私がやりたいのは、10秒などの特定の時間ループを実行し、その間にアプレットウィンドウでマウスがクリックされた回数を計算したいということです。

このようなもの

for(10 seconds)
{
    a=getClickCount()
}

texfield.setText(+a);

私が直面している問題は、クリックを止めると count の値が増加し始め、それから秒単位で増加し始めることです。今までは nanoTime メソッドを使用してきました。

4

3 に答える 3

0

スレッドを使用できますか?このような:

static final int SLEEP_MILLIS = 1000;//1 sec

Thread counter = new Thread("count click thread") {

    public void run() {
        int nbMillis = 10000; //10sec
        do {
            a = getClickCount();
            refreshView();
            Thread.sleep(SLEEP_MILLIS);
            nbMillis -= SLEEP_MILLIS;
        } while(nbSec>0);
    }
};

counter.start();

refreshView() には、テキストを編集するためのコードが含まれています。SLEEP_MILLIS には、リフレッシュ時間間隔が含まれています。

于 2013-02-25T21:59:35.853 に答える
0

私があなただったら、MouseListenerを実装します。

カウントの開始を象徴するフラグを設定して現在のタイム スタンプを保存し、現在の時刻を定期的に確認して、現在の時刻の秒数と保存したタイム スタンプを比較します。割り当てられた時間内にクリックが成功するたびに、整数値が増加します。次に、MouseListener オブジェクトから getClickCount() を呼び出すだけです。

現在の時刻が保存された時刻より 10 秒遅れたら、フラグを false に設定します。

于 2013-02-25T21:54:47.280 に答える
0

これを実装する最良の方法は、 Timerと MouseListenerを使用することだと思います(Chris Cooney が述べたように)。

10 秒のカウントを開始するには、タイマーを設定し、リスナーをそのイベントに登録します。クリック数をカウントする必要があることを示す を
オンにします。そして、フラグが に設定され ている限り、MouseListener でカウントを開始します。boolean
booleantrue

booleanタイマーのイベントがリスナーをアクティブにしたら、フラグをオフにして実際のクリック数を取得できます。

于 2013-02-25T22:03:53.710 に答える