0
以下代码/我的假设有什么问题?全局动作监听器
首先,我注册AWT事件侦听器:
...
Toolkit.getDefaultToolkit().addAWTEventListener(this,
AWTEvent.ACTION_EVENT_MASK | AWTEvent.ITEM_EVENT_MASK
);
...
然后,我希望每一个用户选择项目时eventDispatched(AWTEvent)
得到所谓从JComboBox
或JList
。然而,没有任何反应。为什么?
@Override
public void eventDispatched(AWTEvent event) {
if (event instanceof ItemEvent) {
System.out.println("ITEM EVENT"); // this is never called
} else if (event instanceof ActionEvent) {
System.out.println("ACTION EVENT"); // this is never called
}
}
我知道,我可以添加到ActionListener
和JComboBox
JList
,但我想避免这种情况的解决方案,因为我试图记录用户活动,因此听众应该是“全球性”。
为什么你认为你需要的语义的事件,如动作/项_global_监听器?听起来很腥...... – kleopatra
因为我认为'user activity tracker'的实现会比添加action/item/... listener到包含在我的GUI中的每个JComponent更简单。 –
单身思维是邪恶的:-)并不一定触发这些_semantic_事件的用户活动 - 也可能以编程方式发生。 – kleopatra