我编写了一个程序来使用applet的玻璃窗格放大applet的一部分。为此,我当然使用仿射变换来缩放内容窗格的渲染内容,然后在玻璃窗格上绘制它。但是,由于鼠标事件必须通过另一个变换反向缩放才能位于正确的位置,因此我必须在玻璃窗格中截取它们并转换坐标。但是,在执行此操作后,我似乎找不到将事件转发到内容窗格的方法,因为它被玻璃窗格覆盖。最初我尝试了Component.dispatchEvent(AWTEvent)方法,但这似乎忽略了我试图转发的任何事件。我已经成功地手动检索组件并调用每个mouseListener和mouseMotionListener的方法,但是,这些结果充其量只是错误。是否有更标准的方法将事件发送到组件?
答案 0 :(得分:1)
尝试以下方法:
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(theEvent)
我自己没试过,我相信它应该有效。至少据我所知,这是UI测试工具使用这种方法。
顺便说一句,怎么没有实现放大镜?使用机器人?