栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否需要在事件队列上运行机器人方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否需要在事件队列上运行机器人方法?

Robot
你提到的方法应该 不是
在美国东部时间运行。查看源代码后发现,这些“事件”方法中的每一个都有一个共同点(即
afterEvent
调用):

public synchronized void keyPress(int keypre) {    checkKeypreArgument(keypre);    peer.keyPress(keypre);    afterEvent();}public synchronized void mousePress(int buttons) {    checkButtonsArgument(buttons);    peer.mousePress(buttons);    afterEvent();}// etcprivate void afterEvent() {    autoWaitForIdle();    autoDelay();}private void autoWaitForIdle() {    if (isAutoWaitForIdle) {        waitForIdle();    }}public synchronized void waitForIdle() {    checkNotDispatchThread();    }private void checkNotDispatchThread() {    if (EventQueue.isDispatchThread()) {        throw new IllegalThreadStateException("Cannot call method from the event dispatcher thread");    }}

如果你调用任何这些方法在EDT而

Robot.isAutoWaitForIdle
true
,一个异常将被抛出。这有理由说明,即使
isAutoWaitForIdle
false
,也不应从EDT调用这些方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496283.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号