首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java.awt.Robot keyPress和keyRelease根本不工作

Java.awt.Robot keyPress和keyRelease根本不工作
EN

Stack Overflow用户
提问于 2018-12-23 03:37:27
回答 1查看 2.7K关注 0票数 1

每当我尝试使用java.awt.Robot keyPress或keyRelease时,它都会给出错误消息pid(25807)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!。不管我做代码多么简单,它都会不断地给出错误信息。这是我的密码:

代码语言:javascript
复制
package com;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

public class JavaRobotExample {
    public static void main(String[] args) throws AWTException {
        Robot robot = new Robot();
    
        robot.keyPress(KeyEvent.VK_A);
        robot.keyRelease(KeyEvent.VK_A);
    }
}

这是我发现的教科书上的例子,但它仍然给出了错误信息。我已经找了很久了,想弄清楚到底是怎么回事。我在Eclipse上使用了MacOS Mojav10.14.2,并且提供了MacBook (我用来编译代码)的隐私访问权限。下面是我所使用的所有内容的屏幕截图:我的代码

还有其他人有这个问题吗?我还应该注意,错误消息被多次发送,尽管它只按了一次键。

EN

回答 1

Stack Overflow用户

发布于 2019-03-03 02:32:14

按照下面的步骤,

  1. 设置->安全和隐私
  2. 向下滚动到“可访问性”
  3. 单击底部的“锁定”按钮,解锁安全和隐私首选项。
  4. 单击“+”图标和您的程序(在我的例子中是Eclipse),然后重试运行

Eclipse IDE仍然显示“这是不允许的。请在主线程中调用TIS/TSM!”但键盘和鼠标事件都能工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53901026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档