我不知道如何做到这一点。我想有一个计时器,可以永远保持循环,但是当循环运行时,我希望能够运行扫描程序并等待用户输入。基本上就像聊天一样。在循环不断检查发布的任何新消息但循环运行时,用户仍然可以提交消息。
我该怎么做?
此外,我还没有设置GUI。这都是在一个简单的命令提示符下运行(如果重要的话)。
答案 0 :(得分:3)
您可以使用工作线程设计模式来设计它。请参考以下链接以了解更多信息:
答案 1 :(得分:1)
你可以使用多线程应用程序,但在我看来,它会比你想要的更复杂。
: 尝试定义一个计时器,并为其添加一个timertask,然后在循环中接收输入:
Scanner scan = new Scanner(System.in);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//Do whatever you want with your messages here
}
}, 0, 1000);
//Wait for user input
while(true) {
String bar = scan.next();
}
答案 2 :(得分:0)
您可以运行正在等待输入的线程。输入输入后,主程序可以调用线程中的方法,然后可以决定是终止循环还是继续运行。
答案 3 :(得分:0)
嗯,听起来很早,但你可以做多个Threads,或者你可以让你的循环在来自用户的新消息之间来回反弹,并检查是否有新的东西发布。
如果您正在从InputStream
(或其中一个子类)中进行阅读,则可以调用available
方法检查并查看可用字节数是否为> 0(如果有任何内容可以从其他聊天参与者或用户输入中读取)。
所以,循环:
这基本上就是它的所有内容。