简述gui与事件处理机制
1个回答
展开全部
所谓事件就是指发送给GUI系统的消息,该消息通知GUI系统某种事情已经发生,要求作出响应。事件根据来源可分为以下几种:
1.计算机输入输出设备产生的中断事件,如鼠标和键盘同GUI系统的交互操作。这种事件是最原生的“底层”事件,一般都需要组件做深入处理,籍此触发更高抽象层次具有语义的逻辑事件。为GUI系统扩展自定义组件往往需要编写处理这些事件,派发高级逻辑事件。Swing中这些事件对应的有MouseEvent、KeyEvent等。
2.GUI系统触发的逻辑事件。这种事件是1中所提的原始事件经过组件的处理后发出的高级事件,比如Swing的JButton产生的ActionEvent。另外通知界面重绘的Paint事件也是高级逻辑事件,这种事件在接收到EXPOSE事件或系统显式调用repaint方法后触发的事件。
3.应用程序触发的事件。应用程序主动触发新事件可以有两种方式来进行,第一种是事件通过添加到系统事件队列进行派发。Swing中通过postEvent、repaint及invokeLater等方法,向系统事件队列添加事件。这种触发机制实质上是调度,触发事件的线程和事件派发线程可以不是同一个线程。事件被添加到系统事件队列后触发过程结束,而之后事件的处理要在事件派发线程上等待执行。第二种是通过调用组件的派发方法(Swing中是fireEventXXXX)触发。使用这种方法,事件对象不会被放到系统事件队列中去,而是直接传递给事件处理方法处理。它的触发机制实质上是函数调用。这种事件触发方式要求事件处理线程必须同时是事件派发线程。
1.计算机输入输出设备产生的中断事件,如鼠标和键盘同GUI系统的交互操作。这种事件是最原生的“底层”事件,一般都需要组件做深入处理,籍此触发更高抽象层次具有语义的逻辑事件。为GUI系统扩展自定义组件往往需要编写处理这些事件,派发高级逻辑事件。Swing中这些事件对应的有MouseEvent、KeyEvent等。
2.GUI系统触发的逻辑事件。这种事件是1中所提的原始事件经过组件的处理后发出的高级事件,比如Swing的JButton产生的ActionEvent。另外通知界面重绘的Paint事件也是高级逻辑事件,这种事件在接收到EXPOSE事件或系统显式调用repaint方法后触发的事件。
3.应用程序触发的事件。应用程序主动触发新事件可以有两种方式来进行,第一种是事件通过添加到系统事件队列进行派发。Swing中通过postEvent、repaint及invokeLater等方法,向系统事件队列添加事件。这种触发机制实质上是调度,触发事件的线程和事件派发线程可以不是同一个线程。事件被添加到系统事件队列后触发过程结束,而之后事件的处理要在事件派发线程上等待执行。第二种是通过调用组件的派发方法(Swing中是fireEventXXXX)触发。使用这种方法,事件对象不会被放到系统事件队列中去,而是直接传递给事件处理方法处理。它的触发机制实质上是函数调用。这种事件触发方式要求事件处理线程必须同时是事件派发线程。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询