有的时候经常会发生在组件中增加监听器之后,监听器并没有收到事件,解决方法有2种,第一种是将监听器增加到顶层容器中,这样时间就有效了,但我今天说的是第二种,将组件中的事件激活。
看第一代码:
运行上边的代码,我们发现无论我们操作都不能关闭窗口,这里也是为什么我们说用Frame而不是JFrame,呵呵,JFrame已经将这一步做好了,原因是该组件的WindowEvent并没有被激活,看下边第二段代码:
将构造函数中增加enableEvents(AWTEvent.KEY_EVENT_MASK | AWTEvent.WINDOW_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK); 激活WindowEvent之后我们就可以正常的关闭窗口了,对于一些事件无效的组件都可以通过该函数激活相应的事件。
详细的事件常量可以参考AWTEvent类。