有2个java GUI程序 A和B。目前有个需求,就是要捕获Java GUI(A)程序(多文档界面,还有模态弹出窗口)的所有鼠标,键盘事件。
原因是要发现当前Java GUI(A)的所有事件来通知另外一个Java程序(B)这里有操作在进行,不要B自动关闭A。请问怎样实现呢?简而言之,就是有没有简单方法捕获Java GUI (多文档,还有模态弹出窗口)的所有鼠标,键盘事件。谢谢先!
原因是要发现当前Java GUI(A)的所有事件来通知另外一个Java程序(B)这里有操作在进行,不要B自动关闭A。请问怎样实现呢?简而言之,就是有没有简单方法捕获Java GUI (多文档,还有模态弹出窗口)的所有鼠标,键盘事件。谢谢先!
让后在A类里面传入B的引用,在时间触发的时候,通知B类做相应的事情就可以了。
希望对你有帮助。如果不明白再联系啊
谢谢,我这里需要说明一下,A和B是相对独立的Java application,互相调用是不可能,不过它们之间的交互不是问题。所以,现在我的主要问题是不知道怎么用简单的方法捕获A 里所有的用户动作事件。然后,通知B就可以。
示例:
getToolkit().addAWTEventListener(new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event) {
// TODO Auto-generated method stub
}
}, AWTEvent.MOUSE_EVENT_MASK);剩下的你自己琢磨下就明白了
使用这样方法有以下问题:
它会捕捉当前界面上的所有同类型事件,
因此,如果你直接捕捉了AWTEvent,
在 eventDispatched 方法内处理完后,该事件就不会向其源控件继续派发了意思就是:
比如你用 AWTEventListener 处理了所有的鼠标事件,
那你在各个子控件上再 addMouseListener ,这时,这里将无法捕捉到鼠标事件了说通俗点:
你用 AWTEventListener 捕捉了所有的鼠标事件后,
所有子控件的 MouseListener 将失效,
所有的事件都必须要在 AWTEventListener 的 eventDispatched 方法中统一处理
示例:
Java code
getToolkit().addAWTEventListener(new AWTEventListener() {@Override
public void eventDispatched(AWTEven……