【发布时间】:2011-09-15 18:57:43
【问题描述】:
我正在通过系统事件队列推送我自己的测试事件队列。在 TestEQueue 中,我通过一次调用 super.dispatchEvent 来重载 dispatchEvent 方法
TestEQueue mytestqueue = new TestEQueue();
Toolkit.getDefaultToolkit().getSystemEventQueue().push(TestEQueue);
但由于某种原因,在新的 TestQueue 中调度失败并出现 AccessControlException。在没有 TestEQueue 的情况下,在主程序中成功调度了相同的事件。
这怎么可能,因为两个队列都在同一个线程组中运行?我该如何调试这个问题?这是一个非常大的测试代码库的一部分,所以我无法复制功能代码。这可能与安全管理器有关吗?
【问题讨论】:
-
api 文档用于从 getSystemEventQueue() 读取 :-):如果安全管理器存在并且其 java.lang.SecurityManager.checkAwtEventQueueAccess 方法拒绝访问 EventQueue,则抛出
-
本次调用无异常成功
标签: java swing event-dispatch-thread event-dispatching awt-eventqueue