Java 如何让扫描仪和计时器同时运行
我正在尝试制作一个旋转密码程序,我遇到的问题是,当程序要求输入密码数字时,计时器将停止。我想我可以把程序分成两个操作文件和一个主文件,但我不想走这条路 有人对我如何解决这个问题有什么想法吗 '''Java 如何让扫描仪和计时器同时运行,java,Java,我正在尝试制作一个旋转密码程序,我遇到的问题是,当程序要求输入密码数字时,计时器将停止。我想我可以把程序分成两个操作文件和一个主文件,但我不想走这条路 有人对我如何解决这个问题有什么想法吗 ''' if(i==10) { System.out.println(“新密码:”); i=-1; d=0; passCode.clear(); 尝试清除(); for(int j=1;j看起来您使用的是一个整数来标记秒数。相反,创建一个变量来存储开始时间。然后从当前时间中减去它,只要您想要获得经过的时间。例
if(i==10)
{
System.out.println(“新密码:”);
i=-1;
d=0;
passCode.clear();
尝试清除();
for(int j=1;j看起来您使用的是一个整数来标记秒数。相反,创建一个变量来存储开始时间。然后从当前时间中减去它,只要您想要获得经过的时间。例如,使用
下面是一个简单的类,您可以使用它来跟踪经过的时间:
class StopWatch
{
protected long startTime;
protected long endTime;
protected boolean running = false;
public void start()
{
startTime = System.currentTimeMillis();
running = true;
}
public void stop()
{
endTime = System.currentTimeMillis();
running = false;
}
public double getElapsedSeconds()
{
if (running) {
return (System.currentTimeMillis() - startTime) / 1000.0;
}
else {
return (endTime - startTime) / 1000.0;
}
}
}
用法和示例:
StopWatch st = new StopWatch();
st.start();
Thread.sleep(1000); // Simulate long-running operation
System.out.println(st.getElapsedSeconds());
Thread.sleep(5500); // Another long-running operation
st.stop();
System.out.println(st.getElapsedSeconds());;
输出结果如下所示:
1.0
6.514
1
6.514
看起来您使用的是整数来标记秒数。相反,请创建一个变量来存储开始时间。然后,无论何时,只要您想要获得经过的时间,就从当前时间中减去该时间。例如,使用
下面是一个简单的类,您可以使用它来跟踪经过的时间:
class StopWatch
{
protected long startTime;
protected long endTime;
protected boolean running = false;
public void start()
{
startTime = System.currentTimeMillis();
running = true;
}
public void stop()
{
endTime = System.currentTimeMillis();
running = false;
}
public double getElapsedSeconds()
{
if (running) {
return (System.currentTimeMillis() - startTime) / 1000.0;
}
else {
return (endTime - startTime) / 1000.0;
}
}
}
用法和示例:
StopWatch st = new StopWatch();
st.start();
Thread.sleep(1000); // Simulate long-running operation
System.out.println(st.getElapsedSeconds());
Thread.sleep(5500); // Another long-running operation
st.stop();
System.out.println(st.getElapsedSeconds());;
输出结果如下所示:
1.0
6.514
1
6.514