Multithreading 如何用java编写一个不等待用户输入不超过2秒或3秒的程序

Multithreading 如何用java编写一个不等待用户输入不超过2秒或3秒的程序,multithreading,java.util.scanner,keypress,Multithreading,Java.util.scanner,Keypress,我正在创建一个测试用户打字技能的游戏。在这种情况下,我希望我的程序不要在特定秒(2-3秒)后等待用户输入。因此,程序应该等待用户输入2或3秒钟,然后如果用户没有按任何键(甚至没有按Enter键),程序应该执行一些特定的任务。如何用java制作这种类型的交互式程序。。我尝试实现多线程的概念,但无法获得预期的输出 import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.even

我正在创建一个测试用户打字技能的游戏。在这种情况下,我希望我的程序不要在特定秒(2-3秒)后等待用户输入。因此,程序应该等待用户输入2或3秒钟,然后如果用户没有按任何键(甚至没有按Enter键),程序应该执行一些特定的任务。如何用java制作这种类型的交互式程序。。我尝试实现多线程的概念,但无法获得预期的输出

import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;

class IsKeyPressed {
   private static volatile boolean wPressed = false;

   public static boolean isWPressed() {
      synchronized (IsKeyPressed.class) {
          return wPressed;
      }
  }

   public static void main(String[] args) {  
        KeyboardFocusManager.getCurrentKeyboardFocusManager()
          .addKeyEventDispatcher(new KeyEventDispatcher() {

        public boolean dispatchKeyEvent(KeyEvent ke) {
            synchronized (IsKeyPressed.class) {
                switch (ke.getID()) {
                case KeyEvent.KEY_PRESSED:
                    if (ke.getKeyCode() == KeyEvent.VK_W) {
                        wPressed = true;
                    }
                    break;

                case KeyEvent.KEY_RELEASED:
                    if (ke.getKeyCode() == KeyEvent.VK_W) {
                        wPressed = false;
                    }
                    break;
                }
                return false;
               }
           }
        }
    }
  }

请分享一个你尝试过的最简单的例子。请参阅以了解如何共享3秒钟后或用户按下预期键后需要执行的代码部分?请共享您尝试过的最简单示例。请参阅以了解如何共享3秒后或用户按下预期键后需要执行的代码部分?