并发/非阻塞控制台键盘输入

Rob*_*lls 7 java input stdio textinput

我正在研究java中的MUD.我每次打勾都会看到玩家输入,但是我正在使用Scanner阻止操作.我想要非阻塞输入.

我看过nio有一个Selector类的包,但是我不确定如何使用它System.in.我想,一旦我运行服务器,我肯定会需要它,但现在一切都是离线的.

我已经尝试过扩展主类Applet和重写keyDown,但这只是意味着在第一个之后不再接受输入.当然,我不再阻止任何东西了,但是没有更多的输入.keyDown我想,再也没有打过电话.

也许线程即使在执行阻塞操作时也可能被中断?

感谢您对此问题的任何见解.

aal*_*lku 2

您无法使用系统控制台执行此操作,因为现在还无法以多平台方式完成此操作。

您可以使用 Swing 窗口作为控制台或找到基于 JNI 的方法,但它可能无法在某些平台上工作。

您可以使用JCurses。它可能有效,它基于 JNI,支持 Windows 和 Linux。