2017-04-01 3 views
-3

タイマーを開始する際の問題とデータを日付に配置する方法が問題になります。 これは私のコードユーザーからの入力時間(分)を入力し、hh:mm:ss形式のカウントダウンを開始します。

Calendar cl = Calendar.getInstance(); 
cl.set(Calendar.HOUR, 0); 
cl.set(Calendar.MINUTE, 0); 
cl.set(Calendar.SECOND, 0); 
cl.add(Calendar.HOUR, hr); 
cl.add(Calendar.MINUTE, min); 
cl.add(Calendar.SECOND, sec); 
Date date = cl.getTime(); 
Timer t =new Timer(1000, new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent ae) { 
    SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); 
    jLabel2.setText(timeFormat.format(date)); 
    } 
}); 
t.start(); 

では、日付のデータを配置するためにCalendarを使用して、タイマーを開始することが正しいですか?

+0

これは宿題ですか? – Tarik

+0

一度に複数のタイマーを実行できる私のプロジェクト 私の質問のサンプルコードで私を助けることができます –

+3

Madishetty、私は1986年にCS学生に戻ってきました。これですべての必要なドキュメントがオンラインになりました。読んで学ぶのはあなたの仕事です。あなたは解決策を見つけるまで掘り下げなければならない。そうでなければ、どのようにしてソフトウェア開発者になると思いますか? – Tarik

答えて

3

これにはCalendarを使用する必要はありません。 Calendarは、時間、分、秒の時間ではなく、カレンダー時間の点を表すためのものです。また、Calendarは古いもので、Java 8の新しいプログラマフレンドリーなクラスに置き換えられました(java.timeパッケージを参照)。

コメントから、カウントダウンタイマーが必要であることを理解しています。私はDurationクラス、それは時間、分、秒単位の期間のために設計されているJava 8で導入されたクラスのいずれかを使用しています

Timer t = new Timer(1000, new ActionListener() { 
     Duration time = Duration.ofHours(hr).plusMinutes(min).plusSeconds(sec); 
     @Override 
     public void actionPerformed(ActionEvent ae) { 
      time = time.minusSeconds(1); 
      jLabel2.setText(formatDuration(time)); 
     } 
    }); 
    t.start(); 

、これは、我々は仕事のために必要なものです:私は示唆しています。しかし、フォーマットには適していません。 toStringメソッドを使用すると、PT9M52Sのような文字列が9分52秒間表示されますが、おそらくほとんどのユーザーが最も直感的であるとは限りません。代わりに、私はこの補助的な方法を書式設定に使用しています:

static String formatDuration(Duration dur) { 
    long hr = dur.toHours(); 
    Duration remainder = dur.minusHours(hr); 
    long min = remainder.toMinutes(); 
    long sec = remainder.minusMinutes(min).getSeconds(); 
    return String.format("%02d:%02d:%02d", hr, min, sec); 
} 
+0

実際に私はこの時間分のデータをラベルに入れたいのですが、カウントダウンはヘルプタイマーで始まります! 私はそれをやって助けます –

+0

申し訳ありません。つまり、最初に入力した値がラベルに表示され、1秒ごとに1秒ごとにカウントが表示されますか? –

+0

はい私を助けてください –

関連する問題