第16讲图形用户界面㈡内容摘要:
绘制一个图形用户界面,但是还没有编写用户交互的代码。 下面来认识一下 Java的事件处理机制。 • 每发生一个事件,程序都需要作出相应的响应,这称为事件处理。 委派事件模型 • 事件处理机制的思想是:可能产生事件的对象(事件源,如窗口,按钮等)收到用户发出的操作指令后产生相应的事件,然后将这些事件分别发送给不同的监听器,由监听器来处理这些事件,并将处理结果返回。 整个过程中,监听器简单的等待,直到它收到一个事件。 这种事件处理机制使得处理事件的应用程序逻辑与生成那些事件的界面逻辑(容器或者组件)彼此分离,相互独立存在。 import .*。 import .*。 class Ex9_13 extends Frame implements ActionListener{ static Ex9_13 frm=new Ex9_13()。 static Button btn=new Button(将窗口变成黄色 )。 public static void main(String args[]){ (frm)。 //把 frm向 btn注册,让 frm监听事件 (new FlowLayout())。 (Action Event)。 (200,150)。 (btn)。 (true)。 } public void actionPerformed(ActionEvent e){ ()。 } } 程序分析: 事件源:也就是事件发生的场所,通常就是各个组件。 如本例的按钮对象。 事件:用户对界面操作在 Java语言上的描述。 它由用户和界面中的组件交换而产生,比如移动鼠标、点击鼠标按钮和按下键盘键等都可以引发事件。 本例中,当按下按钮时,就产生了一个事件 ActionEvent。 监听: Java使用一组接口来实现对事件源的监听。 本例中,为了使 frm窗口对象能够监听按钮触发的事件,让 Ex9_13对象实现事件处理的接口。 自身实现监听器示例 import .*。 import .*。 class Ex9_14{ static Frame frm=new Frame(Action Event)。 static Button btn=new Button(将窗口变成黄色 )。 public static void main(String args[]){ (new ActLis())。 (new FlowLayout())。 (Action Event)。 (200,150)。 (btn)。 (true)。 } //定义内部类 ActLis,并实现 ActionListener接口 static class ActLis implements ActionListener{ public void actionPerformed(ActionEvent e) {//事件发生的处理操作 ()。 } } } 程序分析: 上个例子中,选择了窗口作为监听者。 事实上也可以自定义一个类来实现 ActionListener接口,再把此类产生的对象作为监听。 通常把实现接口的类定义在主类里,自己成为它的内部类。 内部类实现监听器示例 事件处理类 • Java把事件类大致分成两种 : 语义事件 (semantic events)与底层事件 (lowlever events)( 指屏幕上可视化组件的低级输入或窗口系统事件 )。 其中语义事件直接继承自 AWTEvent, 如 ActionEvent、AdjustmentEvent与 ComponentEvent等等 , 底层事件则是继承自 ComponentEvent类 , 如 ContainerEvent、FocusEvent、 WindowEvent与 KeyEvent等等。 • 下表 提供了常用的事件类、事件监听接口与事件监听接口提供的方法。 ActionEvent事件类的处理 • ActionEvent事件对应于组件的主要用途。 点击按钮,选择菜单项目,或向单行文本框输入字符串并敲击 Enter键时,都会发生 ActionEvent事件。 例: Ex9_15 程序分析:点击前面两个按钮,文本框将显示相应的信息,点击退出按钮,程序将结束。 类 Ex9_15继承自 Frame, frm对象是按钮组件的容器。 当按下按钮时,将会发生 ActionEvent类事件,按钮本身不作任何处理,这时候就会把事件向上传递,直到窗口对象 frm监听为止。 当 frm对象监听到按钮事件后,就会运行 ActionListener接口提供的方法 actionPerformed(ActionEvent e)。 由于 ActionEvent类继承自 EventObject类,所以可以使用EventObject类提供的方法 getSource()来查看是哪个对象激活的事件。 TextEvent类。第16讲图形用户界面㈡
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
第16课亚洲第一共和国
大的权利,但君主的权利毕竟受到了一定的限制,相对于以前的君主专制而言,是有进步的。 评价: 体现了 _____________ 历史的进步 一、辛亥革命前民主与专制的斗争 (一)民主思想的传播 ——改良派与革命派的论战 (二)清政府的反应 ——《 钦定宪法大纲 》 的出台( 1908) (三)立宪派的彻底失望 ——“皇族内阁 ” 清政府不但没像所想的那样消除矛盾,所成立的 “
第16课告别“雅尔塔”
11个原苏联加盟共和国 宣布成立 “ 独立国家联合体 ”(独联体) 标志着苏联解体 独联体的 性质 不是国家,而 是一个独立国家的联合体 苏联解体经过 由列宁创建的、拥有 1900万成员的苏联共产党毁于一旦,作为世界上第一个社会主义国家和超级大国之一的苏联的瓦解,这一现实令世界瞩目和震惊,并引起世人的议论和深思。 请同学们想一想:苏联解体的主要原因有哪些呢。 ① 直接原因: ③ 外部原因: ②
第1章单片微型计算机概述
制小数 l 带小数的十进制数转换为二进制数 3. 二进制 、 十六进制之间的相互转换 将二进制数转换为十六进制数 , 从低位开始 ,每四位一组 , 然后将其转换为对应的十六进制数。 如最后一组不足四位 , 需在左边补 0。 用同样方法可将二进制小数转换十六进制小数。 只是分组应从小数点右边开始分成四位一组。 十六进制数转换为二进制数 , 将每位十六进制数直接转换成相应的二进制数。