java - 创建一个线程来写入使用键盘输入的每个字符

标签 java multithreading swing keyboard keylistener

我正在尝试创建一个线程,它将创建一个文本文件,并使用关键监听器写入在计算机上键入的每个字符但我不知道如何将创建的文件附加到用户将输入的下一个字符......可能我让每个人都感到困惑,但我只想存储用户将输入的每个字符(通过键盘)

就像每当我执行我的应用程序时,它都会创建一个文件并开始将 keychar 写入该文件。

最佳答案

这个问题有点不清楚。首先,如果您想存储在系统上输入的每个字符,那么这是一项艰巨的任务(稍后解释)。如果您确实想在顶部的 Java 窗口中注册击键,那么您可以通过不关闭文件并附加到同一个 writer 来实现这一点。

因此它将继续附加到它。但请确保所有按键处理都发生在 SwingUtilities.invokeLater() 内。

现在如果有任务的话,它适用于任何窗口。那么它很乏味,首先因为你需要操作系统的支持。您必须使用 JNI 或最好使用 JNA。对于 Windows,this会有帮助的。我不清楚使用哪个合适的函数,但你会在这里找到所有想要的(尽管你需要先查看 win32 api)

private final User32 lib = = User32.INSTANCE;
//lib.appropriateMethod

与 Mac 类似,使用 Carbon框架(已弃用)或 Cocoa。

如果你用 Java 来做这件事,这就是痛苦

关于java - 创建一个线程来写入使用键盘输入的每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802782/

相关文章:

java - Android 4 上的默认浏览器来自哪里?

java - 为什么 weka 实例不将标称属性设置为第一个值(索引 : 0)

java - 如果当前线程 hibernate ,ThreadPoolExecutor 是否会生成新线程

java - JButton Java 的继承 - 重写方法问题

java - 枚举值获取?

python - asyncio.sleep 如何不阻塞线程?

无法使用 pthread_exit 终止线程

java - 滚动空布局面板

java - 如何使用不同导入的双定时器

java - 如何将 jar 中的域类导入到 Micronaut 项目中?