日期:2014-05-20  浏览次数:20771 次

关于秒表计时器不按开始按钮,直接计时。
如图:


我见到的都是点击开始按钮,才开始计时的计时器,哪位好心人帮我写个如图所示的不点击按钮,运行直接开始计时的秒表计时器啊,谢谢了!
------最佳解决方案--------------------

public class StopWatch extends JFrame {
JTextArea timeArea; // 时间显示
JButton startBtn, pauseBtn, resetBtn;
private int mins = 0, sec = 0;
private long currentTime; // 记录系统当前时间。
private long difference; // 秒表记录并要显示的时间。
private long timeOfStart; // 记录按下"开始"时的系统时间。
private long timeLengthOfPause; // 按下"暂停"时记录累计计时时间。
private String timeStr, str1, str2;

public StopWatch(String str) {
super(str);
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
timeArea = new JTextArea("", 1, 12);
timeArea.setText("00:00");
new Thread(new Runnable() {
public void run() {
while(true){
currentTime=System.currentTimeMillis();        //当前时间
            difference=timeLengthOfPause+(currentTime-timeOfStart);    //计时时间。
            difference=difference/10;            //以10ms为单位。
            mins=(int)(difference/(60*100));        //分钟数
            sec=(int)((difference/100)%60);            //秒数
          
            str1=(mins<10)?("0"+mins+":"):(mins+":");
            str2=(sec<10)?("0"+sec):(sec+"");
  
            timeStr=str1+str2;
            timeArea.setText(timeStr);
}
}
}).start();
contentPane.add(timeArea, BorderLayout.NORTH);
// 中间:启动和暂停按钮
JPanel pCenter = new JPanel(new GridLayout(1, 2));
startBtn = new JButton("开始");
pCenter.add(startBtn);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口退出程序。
}

public static void main(String args[]) {
new StopWatch("秒表");
}
}


至于的你时间计算是怎么回事,我不太清楚你的需求,我借用的时间生成的代码……
------其他解决方案--------------------
怎么做都会有触发条件吧 只不过位置不一样而已
------其他解决方案--------------------
我的意思就是想不监听启动就计时,
              btn.addActionListener(this);
              public void actionPerformed(ActionEvent e){
                  if(e.getSource()==btn){...}
              }
我不要用这样的点击按钮监听才计时,我要启动计时,求求你们了,给我写个吧。
------其他解决方案--------------------