谁处理由java中的组件创建的事件

时间:2017-11-10 06:28:07

标签: java swing button components

我已经读过由组件(如按钮)创建的事件由动作侦听器(对于按钮)处理,但我的一位老师说每个事件都由操作系统处理,所以我很困惑作为实际处理事件的人,是操作系统还是java做的工作。

2 个答案:

答案 0 :(得分:3)

我认为handle这两个词的两个实例意味着完全不同的东西。

您的代码处理引发的事件。所以想象按钮上写着“哦,我已被点击了!”你去“对,我会处理它!”你这样做是为了做到这一点:

button.addActionListener(e -> {...});

操作系统处理提升事件。您的鼠标指针不属于您的程序,对吧?因此,当“单击鼠标左键”信号发送到操作系统时,操作系统将检测鼠标指针的位置。操作系统会说“鼠标指针位于屏幕上的这个位置,那里有一个按钮。这意味着应该点击按钮。嘿!那边的按钮!用户点击了你(someX,someY) )!”。然后,JButton类将首先尝试设置点击动画的动画并引发“已执行的操作”事件。

答案 1 :(得分:0)

某些类型的events是用户输入的直接结果。例如,当用户键入键或移动鼠标时,会生成KeyEventMouseEvent。同样,当用户调整窗口大小或将键盘焦点转移到新组件时,会生成FocusEventComponentEvent。这些类型的事件表示由底层本机窗口系统或操作系统生成的事件通知。其他类型的事件(例如ActionEventPopupMenuEvent不会源自本机窗口系统。相反,这些事件由AWTSwing组件直接生成