回 帖 发 新 帖 刷新版面

主题:请教下菜鸟问题

package cn.edu.njit.thread;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerDateModel;

public class BackTime
{
    public static void main(String[] args)
    {
        BackTimeFrame f = new BackTimeFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

class BackTimeFrame extends JFrame
{
    public BackTimeFrame()
    {
        setTitle("倒计时");
        setSize(600, 600);
        setLocation(500, 200);
        BackTimePanel p = new BackTimePanel();
        add(p);
    }
}

class BackTimePanel extends JPanel
{
    private JSpinner sp;
    private JButton b;
    boolean time = true;
    GregorianCalendar gc;

    public BackTimePanel()
    {

        Date now = new Date();
        gc = new GregorianCalendar();
        gc.setTime(now);
        SpinnerDateModel dateModel = new SpinnerDateModel(now, null, null,
                Calendar.SECOND);
        sp = new JSpinner(dateModel);
        JSpinner.DateEditor editor = new JSpinner.DateEditor(sp, "HH小时mm分ss秒");
        sp.setEditor(editor);
        add(sp);
        b = new JButton("倒计时");
        add(b);
        b.addActionListener(new ActionListener()
        {

            public void actionPerformed(ActionEvent e)
            {
                Thread t = new Thread(new Runnable()
                {

                    public void run()
                    {
                        try
                        {
                            long t1 = System.currentTimeMillis();
                            long t2 = System.currentTimeMillis();
                            while (time)
                            {

                                sp.setValue(sp.getPreviousValue());
                                Thread.sleep(1000);

                            }
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }

                    }

                });
                t.start();
            }

        });

    }

}


我想请问下,怎么让这个定时器在00:00:00时停下啊!谢谢了···

回复列表 (共2个回复)

沙发

让它wait()不行吗?

板凳

深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

我来回复

您尚未登录,请登录后再回复。点此登录或注册