制作用户输入控制台StopWatch for Java

时间:2017-02-03 05:45:48

标签: java user-input stopwatch

我已经有了用Java创建秒表的代码并且它可以工作,但是我需要让输出显示在控制台而不是另一个窗口上,我不知道该怎么做。

此外,时间立刻开始计时,我不知道如何制作它只会在用户输入“开始”时开始,并在输入“结束”时结束计数。

我真的被这部分困住了。

感谢您的任何帮助和提示,谢谢!

我的代码:

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class StopWatch extends JFrame implements ActionListener, Runnable
{
 private long startTime;
 private final static java.text.SimpleDateFormat timerFormat = new java.text.SimpleDateFormat("mm : ss.SSS");
 private final JButton startStopButton= new JButton("Start/stop");
 private Thread updater;
 private boolean isRunning= false;
 private final Runnable displayUpdater= new Runnable()
     {
     public void run()
         {
         displayElapsedTime(System.currentTimeMillis() - StopWatch.this.startTime);
     }
 };
 public void actionPerformed(ActionEvent ae)
     {
     if(isRunning)
         {
         long elapsed= System.currentTimeMillis() - startTime;
         isRunning= false;
         try
             {
             updater.join();
             // Wait for updater to finish
         }
         catch(InterruptedException ie) {}
         displayElapsedTime(elapsed);
         // Display the end-result
     }
     else
         {
         startTime= System.currentTimeMillis();
         isRunning= true;
         updater= new Thread(this);
         updater.start();
     }
 }
 private void displayElapsedTime(long elapsedTime)
     {
     startStopButton.setText(timerFormat.format(new java.util.Date(elapsedTime)));
 }
 public void run()
     {
     try
         {
         while(isRunning)
             {
             SwingUtilities.invokeAndWait(displayUpdater);
             Thread.sleep(50);
         }
     }
     catch(java.lang.reflect.InvocationTargetException ite)
         {
         ite.printStackTrace(System.err);
         // Should never happen!
     }
     catch(InterruptedException ie) {}
     // Ignore and return!
 }
 public StopWatch()
     {
     startStopButton.addActionListener(this);
     getContentPane().add(startStopButton);
     setSize(100,50);
     setVisible(true);
 }
 public static void main(String[] arg)
     {
     new StopWatch().addWindowListener(new WindowAdapter()
         {
         public void windowClosing(WindowEvent e)
             {
             System.exit(0);
         }
     });
 }

}

0 个答案:

没有答案