2016-12-07 23 views
0

私はこのアプリケーションをシャットダウン/再起動し、ユーザが指定した時間にコンピュータを休止状態にするよう開発していました。私が開発していたアプリケーションの写真を添付し​​ました。ユーザがシャットダウン/再起動するか、またはユーザが与えられた時間内にコンピュータを休止するために時間、分または秒を選択できます。私が使っていたコードサンプルを添付しているが、それは時間Javaでカウントダウンタイマーを作成するには

public void cal() { 
    int seconds = (int) jSpinner1.getValue(); 
    int minutes = (int) jSpinner2.getValue(); 
    int hours = (int) jSpinner3.getValue(); 

    int SECONDS_IN_A_DAY = 24 * 60 * 60; 

    Calendar day = Calendar.getInstance(); 

    day.set(Calendar.SECOND, seconds); 
    day.set(Calendar.MINUTE, minutes); 
    day.set(Calendar.HOUR_OF_DAY, hours); 


    long difference = day.get(seconds + minutes + hours); 
    long allSeconds = difference/1000; 

    long days = allSeconds/SECONDS_IN_A_DAY; 
    long secondsDay = allSeconds % SECONDS_IN_A_DAY; 

    final long secondsinaDay = secondsDay % 60; 
    final long minutesinaDay = (secondsDay/60) % 60; 
    final long hoursinaDay = secondsDay/3600; 

    final java.util.Timer timer = new java.util.Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 

     @Override 
     public void run() { 
      System.out.printf("%d hours, %d minutes and %d seconds\n", hoursinaDay, minutesinaDay, secondsinaDay); 
      jLabel5.setText(String.valueOf(hoursinaDay)); 
      jLabel6.setText(String.valueOf(minutesinaDay)); 
      jLabel7.setText(String.valueOf(secondsinaDay)); 

      //What should be in here if I needed to count down the Timer?????? 
     } 
    }, 1000, 1000); 

} 

The picture of my Application

+0

問題はどちらですか? 「それは時間をカウントしなかった」とはどういう意味ですか? – SJuan76

+0

あなたのカウンターにスレッドまたはジョブを使用しようとしましたか? – Gatusko

+0

たとえば、 'hoursinaDay'は常に同じ値です... –

答えて

1

をダウンカウントされませんでしたそれはあなたが何が起こるかをきちんと説明せずに難しいですが、非常に少なくとも、あなたが計算されなければなりません時間の値はの内部にのタスクを残しました。

タスク外のコードは1回だけ実行され、1秒ごとに実行されるタスクのコードのrun()メソッド内のコードです。

タスクを実行しても、常にラベルに同じ値が設定されます。

+0

私は@ SJuan76ダウンカウントを考えることはできません –

関連する問題