相关疑难解决方法(0)

在Java中检测并操作键盘方向键

G'day所有,

我有一个控制台项目,用户按下键盘方向键(非数字小键盘)来移动化身.我编码很难检查这些键的按键.在Pascal中,使用"readkey"和代码很容易,例如,#80用于向下按键.但是,我很难理解如何在Java中实现相同的功能,尽管我认为我理解使用System.in和BufferedInputStream.

任何人都可以帮我吗?非常感谢您的想法或提示.

java keyboard key direction

9
推荐指数
3
解决办法
2万
查看次数

Java键盘输入在控制台应用程序中解析

我刚开始搞乱JLine来解析控制台模式下的字符输入.它似乎运作良好,但我想知道:

在JLine中是否存在非阻塞方式以查明字符是否可用?(就像kbhit()在Windows中一样.)

我想我总是可以将键盘输入包装在自己的线程中,然后将线程安全队列中的键盘字符提供给主线程,但这似乎是不必要的.

编辑:这是逐字符解析.我不打算使用GUI.在控制台模式下,Java中通常的InputStream I/O要求您首先按Enter键(例如,它只是缓冲输入).请不要告诉我在Java中无法在控制台模式下输入逐个字符的输入; 事实并非如此.JLine使用具有平台相关实现的可移植接口来实现它.

编辑更新:我能够组合一个帮助程序类来在工作线程中执行阻塞I/O(对于每个字符的I/O使用JLine,警告:您必须自己解析Ctrl-C!)然后进行通信通过带有isempty()例程的同步队列.对于我现在正在做的事情,这很好,但我真的想知道未来的好方法.

java keyboard jline

8
推荐指数
1
解决办法
1万
查看次数

保持Java程序永远运行或持续很长时间的最佳方法是什么?

我有java应用程序,它支持多个工作流程.使用从命令行传递给它的参数选择工作流.在其中一个工作流应用程序需要运行无限时间.我使用以下代码实现了相同的目标

switch (args[0]) { 
    case "-runForever":
     // Some Computation
     Thread.sleep(Long.MAX_VALUE);
     break;
    case "otherCase:
     //dosomething
     break;
}
Run Code Online (Sandbox Code Playgroud)

这是实现所需功能的好方法吗?

java unix

2
推荐指数
1
解决办法
2686
查看次数

标签 统计

java ×3

keyboard ×2

direction ×1

jline ×1

key ×1

unix ×1