很简单,用Timer和TimerTask就搞定

解决方案 »

  1.   

    import java.util.Timer;
    import java.util.TimerTask;
    import javax.swing.JTextField;
    import javax.swing.JOptionPane;
    import javax.swing.JFrame;
    import java.awt.Color;
    import javax.swing.JButton;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;class Timertest extends JFrame
    {
    JButton bt = new JButton("输入");
    JTextField jtd = new JTextField(25);
    Timer timer = new Timer();
    int waitSecond = 0;
    Timertest()
    {
    setSize(200, 150);
    jtd.setForeground(new Color(255,0, 0));
    bt.addMouseListener(new MouseAdapter()
    {
    public void mouseReleased(MouseEvent e)
    {
    try
    {
    waitSecond = Integer.parseInt(JOptionPane.showInputDialog(bt, 
    "输入等待时间:", "输入", JOptionPane.PLAIN_MESSAGE));
    reTimer();
    }
    catch(Exception ex)
    {
    JOptionPane.showMessageDialog(bt, 
    ex.toString() + ":\n输入有误!", "出错啦!",
    JOptionPane.INFORMATION_MESSAGE);
    }
    }
    });
    getContentPane().add(jtd, "North");
    getContentPane().add(bt, "South");
    }
    public void reTimer()
    {
    timer.schedule(new TimerTask()
    {
    public void run()
    {
    jtd.setText("还有"+waitSecond+"秒");
    waitSecond--;
    }
    }, 0, 1000);
    }
    public static void main(String[] args)
    {
    final Timertest tt = new Timertest();
    tt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    tt.setVisible(true);
    }
    }
      

  2.   

    没有加一些判断啊
    可以判断当waitSecond == 0后
    就停止计时