【问题标题】:Get input from the keyboard without pausing the program在不暂停程序的情况下从键盘获取输入
【发布时间】:2012-02-19 11:38:13
【问题描述】:

我在 Windows 7 上编写 Java,我希望能够使用来自键盘的输入,我只能假定它是标准输入。

我尝试过使用BufferedInputSystem.inScanner,但它们都需要程序暂停并等待行尾或返回!有没有办法只收集和记录使用的数据,而不必等待返回?

【问题讨论】:

  • 您可以创建一个新线程并在这个新线程中请求输入,同时在主线程中执行其他操作。
  • "不必等待返回我(作为用户)在我准备好应用程序时点击“返回”。对数据做一些事情。在那之前应用程序做任何事情的用例是什么?你想提供什么应用程序功能?
  • 我想我只是从你所说的安德鲁中理解了这个问题。我不认为你可以在控制台中做你想做的事。
  • 我们每天都在学习东西! interesting stuff
  • 最后一个链接看起来很有用..!谢谢,弗洛里安!

标签: java return java.util.scanner


【解决方案1】:

这是一个快速的解决方案:

public static void main(String[] args) {

    Thread inputThread = new Thread(new Runnable() {
        @Override
        public void run() {

            Scanner scan = new Scanner(System.in);
            String input = "";
            while (true) {
                System.out.println("Type something: ");
                input = scan.nextLine();
                System.out.println("Input: "+input);
            }
        }
    });

    inputThread.start();

    while (true) {

        System.out.println("");
        System.out.println("test");

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

主线程每秒打印一次“test”。 inputThread 要求用户输入一些内容,然后打印他写的内容。这只是一个“视觉”解决方案,您当然不想在用户输入时打印一些东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多