是一秒一显示的

解决方案 »

  1.   

    http://wenku.baidu.com/view/fc8d2901de80d4d8d15a4fe5.html
      

  2.   

    import java.util.*;
    class  Cs1
    {
    public static void main(String[] args) 
    {
    Calendar cal=new Calendar.getInstance();
    cal.setTime(new Date());
    long t1=cal.getTimeInMillis();
    System.out.println(t1);
    }
    }
    编译不成功,求解
      

  3.   

    Calendar cal=new Calendar.getInstance(); 
    改为 Calendar cal=Calendar.getInstance();
      

  4.   

    上面的程序已解决
    只想得到一个完整的带有计时器的frame,只有一个计时器和两个按钮“开始”、“结束”,并且是按秒显示的
      

  5.   

    public class TestCanvas extends Frame{

    public TestCanvas(){
    //得到窗口尺寸
    this.add(new StopWatch());
    this.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
    e.getWindow().dispose();
    }
    });


    }

    public static void main(String[] args) {
    TestCanvas canvas = new TestCanvas();
    canvas.setSize(300,300);
    canvas.setVisible(true);
    }
    }
    public class StopWatch extends Canvas implements Runnable{ long startTime=0 ;
    long endTime=0;
    boolean bStart = false;
    public StopWatch(){
    this.enableEvents(AWTEvent.MOUSE_EVENT_MASK);
    }
    @Override
    protected void processMouseEvent(MouseEvent e) {

    if(e.getID() == MouseEvent.MOUSE_PRESSED){
    startTime = endTime = System.currentTimeMillis();
    repaint();
    bStart = true;
    new Thread(this).start();
    }else if(e.getID() == MouseEvent.MOUSE_RELEASED){
    endTime = System.currentTimeMillis();
    repaint();
    bStart = false;
    }
    } @Override
    public void paint(Graphics g) {
    SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
    try {
    Date date0 = format.parse("00:00:00");
    date0.setTime(date0.getTime()+(endTime - startTime));
    String strTime = format.format(date0);
    //g.setColor(Color.BLACK);
    g.setColor(Color.BLACK);
    g.draw3DRect(0,0,78,28,false);

    g.setColor(Color.RED);
    g.drawString(strTime,10,20);

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

    }
    @Override
    public void run() {
    while(bStart){
    try {
    Thread.sleep(10);

    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    endTime = System.currentTimeMillis();
    repaint();
    }
    }
    }
      

  6.   

    http://topic.csdn.net/u/20120528/00/6f95d429-0851-46ac-839e-2040dc058186.html?46716
    帮帮忙看一下……
      

  7.   

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.*;public class ClockCounter extends JFrame{

    private JButton startButton = new JButton("start");
    private JButton endButton = new JButton("end");
    private JLabel timeLabel = new JLabel("");
    private int count;
    private Timer timer;

    public ClockCounter() {
    count = 0;
    JPanel panel_1 = new JPanel();
    panel_1.add(startButton);
    panel_1.add(endButton);
    JPanel panel_2 = new JPanel();
    panel_2.add(timeLabel);
    startButton.addActionListener(new StartButtonListener());
    endButton.addActionListener(new EndButtonListener());
    this.add(panel_1, BorderLayout.CENTER);
    this.add(panel_2, BorderLayout.SOUTH);
    timer = new Timer(100, new TimerCounterTask());
    }

    private synchronized void clearCount() {
    count = 0;
    }

    private synchronized int getCount() {
    return count;
    }

    private synchronized void increaseCount() {
    count++;
    }

    public static void main(String [] args) {
    ClockCounter counter = new ClockCounter();
    counter.setSize(400, 100);
    counter.setVisible(true);
    }

    class StartButtonListener implements ActionListener { @Override
    public void actionPerformed(ActionEvent e) {
    timer.stop();
    clearCount();
    timer.start();
    timeLabel.setText("" + 0 + "." + 0 + " sec");
    }
    }

    class EndButtonListener implements ActionListener { @Override
    public void actionPerformed(ActionEvent e) {
    timer.stop();
    }
    }

    class TimerCounterTask implements ActionListener { @Override
    public void actionPerformed(ActionEvent e) {
    increaseCount();
    timeLabel.setText("" + getCount() / 10 + "." + getCount() % 10 + " sec");
    }

    }
    }
    楼主看看这样可以么
      

  8.   

    我只是想学习一下timer的用法,不需要太长的代码,只要一个简单的计时器即可   
    下面这个程序运行时不能达到预期目的,求修正
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.Timer;
    import java.util.TimerTask;
    class  Cs1
    {
    public static void main(String[] args) 
    {  WindowButton win=new WindowButton("窗口");
    }
    }
    class WindowButton extends Frame implements ActionListener
    {
        Button button1,button2,button3;
    TextField text;
    Timer timer=new  Timer();
    Calendar cal=Calendar.getInstance();
    WindowButton(String s)
    {  super(s);
       setLayout(new FlowLayout());
       button1=new Button("所用时间");
       button2=new Button("开始计时");
       button3=new Button("停止计时");
       text=new TextField("0",10);
       add(text);
       add(button2);
       add(button1);
       add(button3);
       button2.addActionListener(this);
       button3.addActionListener(this);
       setBounds(100,100,150,150);
       setVisible(true);
       validate();
    }
    public void actionPerformed(ActionEvent e)
    {  cal.setTime(new Date());
    if(e.getSource()==button2)
    {  final long t1=cal.getTimeInMillis();
       timer.schedule(new TimerTask()
              {  public void run()
             {  long t2=cal.getTimeInMillis();
                    long m=(t2-t1)/1000;
                    //System.out.println(m+"s");
        text.setText(m+"s");
             }
               },0,1000);
    }
    if(e.getSource()==button3)
    {  timer.cancel();
    }
    }
    }