Java 纯控制台程序如何添加键盘监听?

Amstrong 发布于 2013/08/06 12:01
阅读 5K+
收藏 1

在Java 图形界面库里面有事件监听类,如果是单纯的控制台程序如何进行键盘监听呢?

比如说,我想做一个无限循环,当用户按下ESC键的时候就终止程序,该如何实现?

加载中
0
typeorigin
typeorigin

可以试试 

Scanner scanner = new Scanner(System.in);

然后 scanner.next() 判断字符


Amstrong
Amstrong
不好意思,问题没说清楚,我说的无限循环不是无限从键盘读入,而是像无限输出那种的,比如从1开始,依次输出2、3、4。。。,如果用户不按下ESC键就不停地输出。如果用了scanner 的话程序就会处于等待用户输入的状态,直到用户按下ESC键,这和我说的要求不符
0
R-Lu
R-Lu
貌似这个在Swing中已经做好了,不用你无限循环吧... 
哈哈123321
回复 @Robinson_lu : 你们完全没懂人家在问什么
莲莲莲
回复 @Amstrong : 可以多线程么,一个线程输出,一个监控输入,符合条件了就停止另一个线程。
Amstrong
Amstrong
回复 @Robinson_lu : Scanner应该不行,那样会处于等待输入状态,和我想要的不一样,具体见我对楼上的回复
R-Lu
R-Lu
那可以试试楼上的Scanner.
ddatsh
ddatsh
控制台程序
0
kidbei
kidbei
swing只能在前置的时候监听键盘事件。如果你要是想实现在任何时候都能监听,得用JNDI,以前用过一个包,不急得名字了
0
loyal
loyal
crtl+c
loyal
loyal
回复 @Amstrong : eclipse有意义么?啊?开发环境又不是运行环境!
Amstrong
Amstrong
回复 @loyal : 好吧,那我的问题就改成:eclipse下的无界面程序,如何用ESC键终止
loyal
loyal
回复 @Amstrong : 晕,那个不是控制台,那个只是一个文本框用来回显信息的而已.
Amstrong
Amstrong
回复 @loyal : 控制台程序不一定要在cmd下面吧,Eclipse里面也可以编控制台程序啊
loyal
loyal
回复 @Amstrong : 晕什么叫貌似,在cmd下这个是强制的没有行不行的问题.
下一页
0
n
notrap
Java 应该没法操作控制台的句柄吧,试试 JNI 吧
Amstrong
Amstrong
调用C程序监听键盘么
0
Monkey
Monkey
开个线程不停读取System.in.
0
龙图腾飞
龙图腾飞
你可以使用swt extension 里面有hook类似的类不过 不太好用,尤其是在win7下,运行就像死机还是建议你用其他语言
返回顶部
顶部