给一个界面 上面一个文本框 下面两个按钮一 个是(开始)另一个是(继续/暂停) 点开始时开始计时,点第二个按钮就暂停再点第二个按钮就又开始. 谢谢各位高手!

解决方案 »

  1.   


    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.Timer;
    public class Test {
    private JTextField jt;
    private Timer time;
    public Test() {
    JFrame jf = new JFrame();
    jf.setSize(200, 200);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel jp = new JPanel();
    jp.setLayout(new FlowLayout());
    jt = new JTextField();
    jt.setText("点击按钮开始显示时间");
    JButton jb1 = new JButton("开始");
    jb1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent arg0) {
    time = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    Calendar c = Calendar.getInstance();
    SimpleDateFormat sd = new SimpleDateFormat(
    "yyyy-MM-dd HH:ss");
    String nowTime = sd.format(c.getTime());
    jt.setText(nowTime);
    }
    });
    time.start();
    }
    });
    JButton jb2 = new JButton("结束");
    jb2.addActionListener(new ActionListener() { @Override
    public void actionPerformed(ActionEvent arg0) {
    time.stop();
    } });
    jp.add(jt);
    jp.add(jb1);
    jp.add(jb2);
    jf.add(jp);
    jf.setVisible(true);
    }
    public static void main(String[] args) {
    new Test();
    }}
      

  2.   

    楼主的意思是可以resume的,可惜suspend不好用,呵呵
      

  3.   


    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;class TimerFrame extends JFrame 
    {
    private JLabel showTime=new JLabel();
    private int hour;
    private int min;
    private int sec;
    private int msec;
    private Timer timer;
    public TimerFrame(){
    timer=new Timer(100,new UpdateTimeAction());
    JButton startBut=new JButton("Start");
    startBut.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    timer.start();
    }
    }); JButton pauseBut=new JButton("Start/Pause");
    pauseBut.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    if(timer.isRunning())
    timer.stop();
    else
    timer.start();
    }
    });
    JButton clearBut=new JButton("Clear");
    clearBut.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    hour=0;
    min=0;
    sec=0;
    msec=0;
    showTime.setText(hour+":"+min+":"+sec+"."+msec);
    }
    }); showTime.setHorizontalAlignment(SwingConstants.CENTER); 
    add(showTime,BorderLayout.CENTER);
    JPanel panel=new JPanel();
    panel.add(startBut);
    panel.add(pauseBut);
    panel.add(clearBut);
    add(panel,BorderLayout.SOUTH);
    setSize(300,200);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } private class UpdateTimeAction implements ActionListener{
    public void actionPerformed(ActionEvent e){
    addMsec();
    showTime.setText(hour+":"+min+":"+sec+"."+msec);
    }
    }
    private void addMsec(){
    msec++;
    if(msec==10){
    msec=0;
    sec++;
    if(msec==60){
    msec=0;
    min++;
    if(min==60){
    min=0;
    hour++;
    }
    }
    }
    }
    public static void main(String[] args) 
    {
    new TimerFrame();
    }} 
      

  4.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>计时器</TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY bgcolor='#FF9966'>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <div align='center'><font size='5' face='黑体'>*天王表为您计时*</font><br/><br/><input name='aa' value='单击按钮开始计时'><br/><br/><input name='bb' type='button' value='count' onclick='check()'><input name='cc' value='clear' onclick='check1()' type='button'></div>
    <script>
    var timeout=0
    function check()
    {
     if(timeout==0)
       {
        bb.value='pause';
    window.status='若要暂停,请单击pause';
    count1();
    }
       else
        { //alert(timeout);
         bb.value='count';
         window.status='若要开始计时,请单击count';
         clearTimeout(timeout)/*清空计数器的作用,是停止计数器所代表的函数的动作.而不是清空计数器里的值.*/
     //alert(timeout);
     timeout=0;
      //alert(timeout);
          }
       }
     var hh=0;
     var mm=0;
     var ss=0;
    function count1()
    {    ss++;
       
     if(ss>59)
       {
        ss=0;
        mm++;
    }
     if(mm>59)
       {
    mm=0;
    hh++
    }
      aa.value=eval("hh+'小时'+mm+'分'+ss+'秒'")
      //或者可以写成aa.value=hh+'小时'+mm+'分'+ss+'秒'
      timeout=setTimeout('count1()',1000)
     } function check1()
     {
      clearTimeout(timeout);
      timeout=0,ss=0,mm=0,hh=0;
      aa.value=eval("hh+'小时'+mm+'分'+ss+'秒'")
     }
    </script></BODY>
    </HTML>
      

  5.   

    是啊,手误吧sec写成msec了
    重新改过的代码。import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;class TimerFrame extends JFrame 
    {
    private JLabel showTime=new JLabel();
    private int hour;
    private int min;
    private int sec;
    private int msec;
    private Timer timer;
    public TimerFrame(){
    timer=new Timer(100,new UpdateTimeAction());
    JButton startBut=new JButton("Start");
    startBut.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    timer.start();
    }
    }); JButton pauseBut=new JButton("Start/Pause");
    pauseBut.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    if(timer.isRunning())
    timer.stop();
    else
    timer.start();
    }
    });
    JButton clearBut=new JButton("Clear");
    clearBut.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    hour=0;
    min=0;
    sec=0;
    msec=0;
    showTime.setText(hour+":"+min+":"+sec+"."+msec);
    timer.stop();
    }
    }); showTime.setHorizontalAlignment(SwingConstants.CENTER); 
    add(showTime,BorderLayout.CENTER);
    JPanel panel=new JPanel();
    panel.add(startBut);
    panel.add(pauseBut);
    panel.add(clearBut);
    add(panel,BorderLayout.SOUTH);
    setSize(300,200);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } private class UpdateTimeAction implements ActionListener{
    public void actionPerformed(ActionEvent e){
    addMsec();
    showTime.setText(hour+":"+min+":"+sec+"."+msec);
    }
    }
    private void addMsec(){
    msec++;
    if(msec==10){
    msec=0;
    sec++;
    if(sec==60){
    sec=0;
    min++;
    if(min==60){
    min=0;
    hour++;
    }
    }
    }
    }
    public static void main(String[] args) 
    {
    new TimerFrame();
    }}