javax.swing.Timerクラスからタイマーの遅延を使用しようとしています。
私は5秒ごとに更新されるJFrameのラベル(温度)を取得しようとしていますが、ラベルは1秒で更新されることがあります。私はそれが5秒で起こることを望む。ここ
は、私のコードの一部です:Javaタイマーの遅延が正しく機能しない
int delay = 5000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
tempLabel.setVisible(true);
String currTemp = null; //current temperature
try {
currTemp = getWeatherData.getTemp(locationIndex);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tempLabel.setText("Temperature : " + currTemp);
}
};
Timer timer= new Timer(delay, taskPerformer);
timer.setRepeats(true);
timer.start();
何が起こっていますか?読書ありがとう
ためWorker Threads and SwingWorkerを参照してください?タイマーは5秒ごとに呼び出されているかもしれませんが、 'getTemp'は4秒で完了します。この場合、' SwingWorker'を使うほうが良いかもしれません。 – MadProgrammer
getTempは定数ですが、私のコードにSwingWorkerをどのように使うのか教えてください。 – fredjohnson