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