私は Java の初心者で、swing GUI に時間を表示する単純なストップウォッチ プログラムを作成しようとしています。ストップウォッチを作成するのは簡単ですが、GUI を毎秒更新して現在の時刻をストップウォッチに表示する方法が見つかりません。これどうやってするの?
質問する
10700 次
1 に答える
6
これらの行に沿った何かがそれを行う必要があります:
import java.awt.EventQueue;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JLabel;
/** @see https://stackoverflow.com/a/11058263/230513 */
public class Clock {
private Timer timer = new Timer();
private JLabel timeLabel = new JLabel(" ", JLabel.CENTER);
public Clock() {
JFrame f = new JFrame("Seconds");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(timeLabel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
timer.schedule(new UpdateUITask(), 0, 1000);
}
private class UpdateUITask extends TimerTask {
int nSeconds = 0;
@Override
public void run() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
timeLabel.setText(String.valueOf(nSeconds++));
}
});
}
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
final Clock clock = new Clock();
}
});
}
}
にはtimeLabel
、タイマーが実行されている秒数が常に表示されます。
于 2012-06-15T21:13:16.580 に答える