在Dos 下或者GUI下都可以 能实现电子表如下的功能  
1:显示时间
2:设置时间
3:时间一直在走

解决方案 »

  1.   

    刚刚写了个,符合你的要求,但还没完善(比如修改时间只能是数字,这个很简单你自己加下就可以)代码如下:
    import java.applet.*;import java.awt.*;
    import java.awt.event.*;import java.util.*;
    public class time extends Applet implements ActionListener,Runnable
    {
    TextField text1,text2,text3;
    Button button1,button2;
    int hour=0,munite=0,second=0;
    int b=1;//判断是否为修改时间
    Thread miao;String s;
    public void init()
    {
        text1=new TextField(10);text2=new TextField(10);text3=new TextField(20);
        button1=new Button("恢复");button2=new Button("确定");
    add(text1);add(text2);add(text3);add(button1);add(button2);
    button1.addActionListener(this);
    button2.addActionListener(this);
    miao=new Thread(this);
        }
    public void shijian()
    {
    Date date=new Date();
    s=date.toString();
    hour=Integer.parseInt(s.substring(11,13));
    munite=Integer.parseInt(s.substring(14,16));
    second=Integer.parseInt(s.substring(17,19));
    }
    public void start()
       {
    if(b==1)//开始执行,B不等于1则是进行修改时间
    {
    shijian();
    }
    text1.setText(String.valueOf(hour));text2.setText(String.valueOf(munite));text3.setText(String.valueOf(second));
    miao.start();
       }
    public void run()
    {
    while(true)
    {
             try{
     
                 second++;
                 miao.sleep(1000);
                 text3.setText(String.valueOf(second));
         }
     catch(InterruptedException e){}
      if (second>59)
      {  second=0;
                 munite++;
                 text2.setText(String.valueOf(munite));
                 text3.setText(String.valueOf(second));
      }
      if(munite>59)
      {
      munite=0;
      hour++;
      text2.setText(String.valueOf(munite));
              text1.setText(String.valueOf(hour));
      }
      if (hour>23)
      {
               second=0;munite=0;hour=0;
               text1.setText("0");
               text2.setText("0");
               text3.setText("0");
      }
        }
        }
    public void actionPerformed(ActionEvent e)
    {
       if(e.getSource()==button1)//恢复默认时间
    {
        miao.interrupt();
        shijian();
        start();
        run();
    }
       if(e.getSource()==button2)
    {
        if(Integer.parseInt(text1.getText())<0||Integer.parseInt(text1.getText())>23||Integer.parseInt(text2.getText())<0|Integer.parseInt(text2.getText())>59||Integer.parseInt(text3.getText())<0||Integer.parseInt(text3.getText())>59)
    {//修改时间不符合标准,则恢复默认时间
         miao.interrupt();
    shijian();
    start();
        run();
        }
    else
    {
     b=2;//进行修改时间
                 hour=Integer.parseInt(text1.getText());
                 munite=Integer.parseInt(text2.getText());
                 second=Integer.parseInt(text3.getText());
                 miao.interrupt();
                 start();
                 run();
    }
    }
    }
    }