为Java制作用户输入控制台秒表
我已经有了用Java创建秒表的代码,它可以工作了,但是我需要让输出显示在控制台上,而不是另一个窗口上,我不知道该怎么做 而且,时间立即开始计数,我不确定如何使它只在用户输入“开始”时开始,在用户输入“结束”时结束计数 我真的被这部分难住了 任何帮助和提示都将不胜感激,谢谢 我的代码:为Java制作用户输入控制台秒表,java,user-input,stopwatch,Java,User Input,Stopwatch,我已经有了用Java创建秒表的代码,它可以工作了,但是我需要让输出显示在控制台上,而不是另一个窗口上,我不知道该怎么做 而且,时间立即开始计数,我不确定如何使它只在用户输入“开始”时开始,在用户输入“结束”时结束计数 我真的被这部分难住了 任何帮助和提示都将不胜感激,谢谢 我的代码: import java.awt.event.*; import java.awt.*; import javax.swing.*; public class StopWatch extends JFrame im
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);
}
});
}
}
System.out.println
将在控制台中输出,但您的意思是您需要制作一个“完整”的控制台版本吗?是的,我的意思是一个完整的控制台版本,是否可以通过修改我现在拥有的代码来实现,或者我必须创建一个特定于控制台的代码?嗯,只需做一点工作,您就可以创建一个秒表类,该类可以在这两个平台上运行