java第7章AWT组件及事件处理.ppt

上传人:max****ui 文档编号:6357581 上传时间:2020-02-23 格式:PPT 页数:68 大小:568.50KB
返回 下载 相关 举报
java第7章AWT组件及事件处理.ppt_第1页
第1页 / 共68页
java第7章AWT组件及事件处理.ppt_第2页
第2页 / 共68页
java第7章AWT组件及事件处理.ppt_第3页
第3页 / 共68页
点击查看更多>>
资源描述
第 章AWT组件及事件处理 7 1Java窗口7 2文本框7 3内部类实例做监视器7 4按钮与标签7 5菜单项7 6文本区7 7面板7 8布局7 9画布 7 10选择型组件7 11Component类的常用方法7 12窗口事件7 13鼠标事件7 14焦点事件7 15键盘事件 图形用户界面 AWT AbstractWindowToolkit 中包含了许多类和接口 用于JavaApplication的GUI GraphicsUserInterface 编程 通过图形用户界面用户和程序之间可以方便地进行交互 Java的抽象窗口工具包 AWT由Java的java awt包提供 该包中有许多用来设计GUI的组件类 如 按钮 菜单 列表 文本框等组件类 同时它还包含窗口 面板等容器类 容器类 Container 和组件类 Component Java的图形用户界面的最基本组成部分是Component Component类及其子类的对象用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素 例如 一个按钮或标签等 一般的Component对象不能独立地显示出来 必须将 放在 某一的Container对象中才可以显示出来 Container是Component子类 Container子类对象可以 容纳 别的Component对象 Container对象可使用方法add 将其他Component对象添加在它的里面 Container是Component的子类 因此Container对象也可以被当成Component对象添加到其他Container对象中 有两种常用的Container Window 其对象表示自由停泊的顶级窗口 Panel 其对象可作为容纳其它Component对象 但不能独立存在 必须添加到其它Container中 如Window或Applet 7 1Java窗口 Frame类是Container类的间接子类 既Window的子类 当需要一个窗口时 可使用Frame或其子类创建一个对象 窗口是一个顶级容器 不允许将一个窗口添加到另一个容器中 可以向窗口添加组件 需要注意的是 窗口默认地被系统添加到显示器屏幕上 1 Frame常用方法 Frame是Window的子类 由Frame或其子类创建的对象为一个窗口 Frame的常用构造方法 Frame 创建一个无标题的窗口 默认布局为BorderLayout布局 Frame Strings 创建一个标题为s的窗口 默认布局同上 1 publicvoidsetBounds inta intb intwidth intheight 设置出现在屏幕上时的初始位置是 a b 即距屏幕左面a个像素 距屏幕上方b个像素 窗口的宽是width 高是height 2 publicvoidsetSize intwidth intheight 设置窗口的大小 窗口在屏幕出现是默认位置是 0 0 3 publicvoidsetVisible booleanb 设置窗口是可见还是不可见 窗口默认是不可见的 4 publicvoidsetResizable booleanb 设置窗口是否可调整大小 窗口默认是可调整大小的 5 publicvoidsetLocation intx inty 设置窗口的位置 x y为左上角坐标 6 setBackground Colorr 7 setTitle Strings StringgetTitle 7 2文本框 java awt包中的类TextField类创建文本框 用户可以在文本框输入单行的文本 TextField类的主要方法 TextField intx 如果使用这个构造方法创建文本框对象 文本框中的可见字符序列的长度为x个机器字符长 文本框是可编辑的 用户可以在文本框中输入若干个字符 TextField Strings 如果使用这个构造方法创建文本框对象 则文本框的初始字符串为s 文本框是可编辑的 可以在文本框中输入若干个字符 publicvoidsetText Strings 文本框对象调用该方法可以设置文本框中的文本为参数s指定的文本 文本框中先前的文本将被清除 publicStringgetText 文本框对象调用该方法可以获取文本框中的文本 PublicvoidsetEchoChar charc PublicvoidsetEditable booleanb publicvoidaddActionListener ActionListenerl 文本框对象调用该方法可以向文本框增加动作监视器 将监视器注册到文本框 2 文本框上的ActionEvent事件 学习组件除了了解组件的属性和功能外 一个更重要的方面是学习怎样处理组件上发生的界面事件 在学习处理事件时 必须很好地掌握事件源 监视器 处理事件的接口这三个概念 通过处理文本框这个具体的组件上的事件 来掌握处理事件的基本原理 Java的事件处理模式 事件源能够产生事件的对象都可以成为事件源 如文本框 按钮 下拉式列表等 也就是说 事件源必须是一个对象 而且这个对象必须是Java认为能够发生事件的对象 监视器需要一个对象对事件源进行监视 以便对发生的事件作出处理 事件源通过调用相应的方法将某个对象作为自己的监视器 例如 对于文本框 这个方法是 addActionListener 监视器 创建该监视器对象的类必须声明实现相应的接口处理事件的接口在文本框获得输入焦点之后 如果用户按回车键 Java运行系统就自动用ActionEvent类创建了一个对象 即发生了ActionEvent事件 当事件源发生事件时 监视器就自动调用执行被类实现的某个接口方法 处理事件示意图 ActionEvent类的常用方法 publicObjectgetSource 返回事件源对象的引用 publicStringgetActionCommand 获取和该事件相关的一个命令字符串 例7 3例7 4 7 3内部类实例做监视器 使用内部类实例做监视器减少代码的编写 可以用和接口有关的匿名类的实例做监视器 例7 5 可以做监视器的对象 1 本类的对象 例3 2 内部类的对象 例5 3 匿名类的对象 例5 4 普通类的对象 不能直接访问其他类的成员 例4 7 4按钮与标签 标签的功能是只显示文本 不能动态地编辑文本 Lalel类的实例就是一个标签 Label Label Strings Label Strings intalignment PublicvoidsetText Strings PublicvoidgetText PublicvoidsetAlignment intalignment PublicvoidgetAlignment 按钮组件 Java awt包中的Button类是专门用来建立按钮的 即Button类创建的一个对象就是一个按钮 按钮可以发生ActionEvent事件 当按钮获得监视器之后 用鼠标单击按钮 就发生ActionEven事件 Button Button Strings PublicvoidsetLabel Strings PublicStringgetLabel PublicvoidaddActionListener ActionListenerl PublicvoidremoveActionListener ActionListenerl 7 5菜单条 菜单 菜单项 1 java awt包中的Menubar类是负责创建菜单条的 即Menubar的一个实例就是一个菜单条 Frame类有一个将菜单条放置到窗口中的方法 MenuBarmb newMenuBar setMenuBar MenuBarbar 2 java awt包中的Menu类是负责创建菜单的 即Menu的一个实例就是一个菜单 Menum1 newMenu 菜单名 Mb add m1 3 java awt包的MunuItem类负责创建菜单项 即MenuItem的一个实例就是一个菜单项MenuItemm11 newMenuItem 菜单项名 m1 add m11 单击某个菜单项可以发生ActionEvent事件 因此 我们可以通过处理ActionEvent事件实现我们想要进行的操作 4 插入分隔线m1 addSeparator 5 为菜单项定义快捷键可以使用MenuShotcut类为菜单项设置快捷键 该类的一个构造方法是 MenuShotcut intkey 其中key可以取值 KeyEvent VK A KeyEvent VK Z 菜单项使用setShortcut MenuShortcutk 方法来设置快捷键 方法一 MenuItemm11 newMenuItem 菜单项名 newMenuShortcut KeyEvent VK A 方法二 MenuItemm11 newMenuItem 菜单项名 M11 setShortcut newMenuShortcut KeyEvent VK A 6 定义带复选框的菜单项CheckboxMenuItemm11 newCheckboxMenuItem 复选菜单 有getState setState 方法不产生动作事件 只产生状态改变事件事件源 addItemListener 监听器 7 建立二级菜单创建一个菜单 添加到另一个菜单中 7 6文本区 java awt包中的类TextArea类是专门用来建立文本区的 即TextArea创建的一个对象称做一个文本区 用户可以在文本区输入多行的文本 1 TextArea类主要方法 TextArea TextArea Strings TextArea intx inty 使用这个构造方法创建文本区对象 文本框可见行数和列数数分别为x和y 文本区有水平和垂直滚动条 publicvoidsetText Strings 文本区对象调用该方法可以将文本区中的文本设置为参数s指定的文本 文本区中先前的文本将被清除 publicStringgetText 文本区对象调用该方法可以获取文本区中的文本 publicvoidappend Strings 文本区对象调用该方法可以在文本区中尾加文本 Publicvoidinsert Strings intx PublicvoidreplaceRange Strings intstart intend IntgetCaretPosition PublicvoidsetCarePosition intposition PublicvoidselectAll addTextListener TextListener 文本区对象调用该方法可以向文本框增加文本监视器 文本区上的TextEvent事件 对于文本区事件源 可以发生TextEvent事件 当文本区获得监视器之后 在文本区域中改变文本的内容 如键入字符 删除字符时 TextEvent类将自动创建一个事件对象 发生TextEvent事件的事件源获得监视器的方法是 addTextListener 监视器 由于文本区可以发生TextEvent事件 所以TextArea类提供了addTextListener方法 处理发生TextEvent事件的接口是TextListener 该接口中只有一个的方法 textValueChanged TextEvente 创建文本区监视器的类必须要实现TextListener接口 当文本区发生TextEvent事件时 监视器将自动调用方法 textValueChanged TextEvente 对发生的事件作出处理 7 12窗口事件 Frame是Window的子类 凡是Window子类创建的对象都可以发生WindowEvent类型事件 即窗口事件 当一个Frame窗口被激活 撤消激活 打开 关闭 图标化或撤消图标化时 就引发了窗口事件 即WindowEvent创建一个窗口事件对象 WindowEvent创建的事件对象调用getWindow 方法可以获取发生窗口事件的窗口 窗口使用addWindowlistener方法获得监视器 创建监视器对象的类必须实现WindowListener接口 该接口中有7个不同的方法 WindowListener接口中的方法 publicvoidwindowActivated WindowEvente 当窗口从非激活状态到激活时 窗口的监视器调用该方法 publicvoidwindowDeactivated WindowEvente 当窗口激活状态到非激活状态时 窗口的监视器调用该方法 publicvoidwindowClosing WindowEvente 当窗口正在被关闭时 窗口的监视器调用该方法 publicvoidwindowClosed WindowEvente 当窗口关闭后 窗口的监视器调用该方法 publicvoidwindowIconified WindowEvente 当窗口图标化时 窗口的监视器调用该方法 publicvoidwindowDeiconified WindowEvente 当窗口撤消图标化时 窗口的监视器调用该方法 publicvoidwindowOpened WindowEvente 当窗口打开时 窗口的监视器调用该方法 2 WindowAdapter适配器 适配器可以代替接口来处理事件 当Java提供处理事件的接口中多于一个方法时 Java相应地就提供一个适配器类 比如WindowAdapter类 适配器已经实现了相应的接口 例如WindowAdapter类实现了WindowListener接口 因此 可以使用WindowAdapte的子类创建的对象做监视器 在子类中重写所需要的接口方法即可 7 7面板 java awt包的Panel类是Container 容器 的子类 因此Panel类及其子类的实例也是一个容器 Panel型容器的默认布局是FlowLayout型布局 Panel类创建的对象称做面板 我们经常在一个面板里添加若干个组件后 再把面板放到另一个容器里 java awt包中的ScrollPane类也是Container类的子类 因此该类创建的对象也是一个容器 称为滚动面板 我们可以把一个组件放到一个滚动面板中 然后通过滚动条来观察这个组件 与Panel创建的容器所不同的是 ScrollPane带有滚动条 而且只能向滚动面板添加一个组件 7 8布局 当把组件添加到容器中时 希望控制组件在容器中的位置 这就需要学习布局设计的知识 我们将分别介绍java awt包中的FlowLayout BorderLayout CardLayout GridLayout布局类和java swing border包中的BoxLayout布局类 容器可以使用方法 setLayout 布局对象 来设置自己的布局 1 FlowLayout布局 FlowLayout类创建的对象称做FlowLayout型布局 FlowLayout型布局是Panel型容器的默认布局 即Panel及其子类创建的容器对象 如果不专门为其指定布局 则它们的布局就是FlowLayout型布局 如果一个容器使用这个FlowLayout型布局 组件按照加入的先后顺序从左向右排列 一行排满之后就转到下一行继续从左至右排列 2 BorderLayout布局 BorderLayout布局是Window型容器的默认布局 例如Frame Dialog都是Window类的子类 它们的默认布局都是BorderLayout布局 如果一个容器使用这种布局 那么容器空间简单地划分为东 西 南 北 中五个区域 中间的区域最大 3 CardLayout布局 使用CardLayout的容器可以容纳多个组件 但是实际上同一时刻容器只能从这些组件中选出一个来显示 就像一叠 扑克牌 每次只能显示最上面一张一样 这个被显示的组件将占据所有的容器空间 依次排序 4 GridLayout布局 GridLayout的布局策略是把容器划分成若干行乘若干列的网格区域 组件就位于这些划分出来的小格中 GridLayout比较灵活 划分多少网格由程序自由控制 而且组件定位也比较精确 由于GridLayout布局中每个网格都是相同大小并且强制组件与网格的大小相同 使得容器中的每个组件也都是相同的大小 显得很不自然 为了克服这个缺点 你可以使用容器嵌套 BoxLayout布局 盒式布局的容器将组件排列在一行或一列 这取决于创建盒式布局对象时 是否指定了是行排列还是列排列 使用行 列 型盒式布局的容器将组件排列在一行 列 组件按加入的先后顺序从左 上 向右 下 排列 容器的两端是剩余的空间 和FlowLayou布局不同的是 使用行型盒式布局的容器只有一行 列 即使组件再多 也不会延伸到下一行 列 这些组件可能会被缩小大小 紧缩在这一行 列 中 Null布局 p setLayout null 1 p add c 2 c setBounds x y width height 7 9画布 作用 用来绘图的组件 java awt包中的类Canvas负责创建画布对象 创建画布对象的常用办法是用Canvas的子类来创建画布对象 并在子类中重写父类的publicvoidpaint Graphicsg 方法 该方法是Component类的一个方法 可以在其子类中重写这个方法 当重写这个方法时 参数g是自动实例化的 这样我们就可以在子类中使用g调用相应方法 比如画串 画图形 图像等 画布没有默认大小 必须用setSize 方法设定画布大小 7 5选择型组件 选择框选择框提供两种状态 一种是选中 另一种是未选中 java awt包中的Checkbox用来建立选择框 即Checkbox创建的一个对象就是一个选择框 常用方法 Checkbox Checkbox Strings Checkbox Strings booleanb Checkbox Strings booleanb CheckboxGroupg PublicvoidaddItemListener ItemListener PublicbooleangetState setState booleanb getLabel setLabel Strings 选择框上的ItemEvent事件 选择框从未选中状态变成选中状态或从选中状态变成未选中状态时 发生ItemEvent事件 选择框可以发生ItemEvent事件 发生ItemEvent事件的事件源获得监视器的方法是 addItemListener 监视器 创建监视器的类必须实现ItemListener接口 该接口中只有一个的方法 当在选择框发生ItemEvent事件时 监视器将自动调用接口方法 temStateChanged ItemEvente 对发生的事件作出处理 ItemEvent类中的方法获得事件源 getSource getItemSelectable 下拉列表Choice创建的一个对象称作一个下拉列表组件 它是用户十分熟悉的一个组件 用户可以在下拉列表看到第一个选项和它旁边的箭头按钮 当用户单击箭头按钮时 选项列表打开 Choice Publicvoidadd Stringname PublicintgetSelectedIndex PublicStringgetSelectedItem Publicvoidinsert Stingname intindex Publicvoidremove Stringname PublicintgetItemCount Publicvoidselect intindex Publicvoidselect Stringname Publicvoidremove intindex PublicvoidremoveAll PublicvoidaddItemListener ItemListener PublicvoidremoveItemListener ItemListener 下拉式列表可以发生ItemEvent事件 当下拉式列表获得监视器之后 用户在下拉列表选项列表中选中某个选项时就发生ItemEvent事件 滚动列表java awt包中的类List类建立滚动列表 List List intn List intn booleanb 滚动列表和下拉列表的一不同之处是可以选中多个选项 Publicint getSelectedIndexes PublicString getSelectedItems 滚动列表和下拉列表的另一不同之处是 滚动列表除了可以发生ItemEvent事件外 还可以发生ActionEvent事件 当用鼠标单击滚动列表的某个选项后 发生ItemEvent事件 当用鼠标双击某个选项后 发生ActionEvent事件 7 11Component类的常用方法 Component类是所有组件的父类 这一节介绍Component类的常用方法 1 组件的颜色 publicvoidsetBackground Colorc 设置组件的背景色 publicvoidsetForeground Colorc 设置组件的前景色 publicColorgetBackground 获取组件的背景色 publicColorgetForeground 获取组件的前景色 注 Color类PublicColor intred intgreen intblue 其中 red green blue的取值在0 255Color类的常量 red blue green orange cyan yellow pinkblack white等 2 组件的字体 publicvoidsetFont Fontf 组件调用该方法设置组件上的字体 例如 文本组件调用该方法可以设置文本组件中的字体 publicFontgetFont 组件调用该方法获取组件上的字体 注 Font类 PublicFont Stringname intstyle intsize 获得计算机上所有字体名的方法 GraphicsEnvironmentge GraphicsEnvironment getLocalGraphicsEnviroment StringfontName ge getAvailableFontFamilyName 3 组件的大小与位置 publicvoidsetSize intwidth intheight 组件调用该方法设置组件的大小 参数width指定组件的宽度 height指定组件的高度 publicvoidsetLocation intx inty 组件调用该方法设置组件在容器中的位置 包含该组件的容器都有默认的坐标系 容器的坐标系的左上角的坐标是 0 0 参数x y指定该组件的左上角在容器的坐标系中的坐标 即组件距容器的左边界x个像素 距容器的上边界y个像素 publicDimensiongetSize 组件调用该方法返回一个Dimension对象的引用 该对像实体中含有名字是width和height的成员变量 方法返回的Dimension对象的width的值就是组件的宽度 height的值就是当前组件的高度 publicPointgetLocation 组件调用该方法返回一个Point对象的引用 该对像实体中含有名字是x和y的成员变量 方法返回的Point对象的x y的值就是组件的左上角在容器的坐标系中的x坐标和y坐标 publicvoidsetBounds intx inty intwidth intheight 组件调用该方法设置组件在容器中的位置和组件的大小 该方法相当于setSize方法和setLocation方法的组合 publicRectanglegetBounds 组件调用该方法返回一个Rectangle对象的引用 该对象实体中含有名字是x y width和height的成员变量 方法返回的Rectangle对象的x y的值就是组件的左上角在容器的坐标系中的x坐标和y坐标 width和height的值就是当前组件的宽度和高度 4 组件的激活与可见性 publicvoidsetEnabled booleanb 组件调用该方法可以设置组件是否可被激活 当参数b取值true时 组件可以被激活 当参数b取值false时 组件不可激活 默认情况下 组件是可以被激活的 publicvoidsetVisible boolean 设置组件在该容器中的可见性 当参数b取值true时 组件在容器中可见 当参数b取值false时 组件在容器中不可见 除了Window型组件外 其它类型组件默认是可见的 5 组件上的光标 publicvoidsetCursor Cursorc 设置鼠标指向组件时的光标形状 Cursorc newCursor Cursor HAND CURSOR 可以使用Cursor类的类方法直接获得一个光标对象 例如 Cursorc Cursor getPredefinedCursor Cursor HAND CURSOR 6 paint方法与repaint方法 paint 方法 publicvoidpaint Graphicsg 调用repaint 方法时 repaint 方法会再去调用update Graphicsg 方法 update Graphicsg 方法也是Component类中的一个方法 这个方法的功能是 清除paint 方法以前所画的内容 然后再调用paint方法 因此我们可以在子类中重写update方法 即隐藏父类的方法 根据需要来清除哪些部分或保留哪些部分 7 13鼠标事件 任何组件上都可以发生鼠标事件 如 鼠标进入组件 退出组件 在组件上方单击鼠标 拖动鼠标等都触发组件发生鼠标事件 也就是说 组件可以成为发生鼠标事件的事件源 1 MouseListener接口 使用MouseListener接口可以处理5种操作触发的鼠标事件 1 在事件源上按下鼠标键 2 在事件源上释放鼠标键 3 在事件源上击鼠标键 4 鼠标进入事件源 5 鼠标退出事件源 鼠标事件的类型是MouseEvent 即当发生鼠标事件时 MouseEvent类自动创建一个事件对象 MouseListener接口中的方法 1 mousePressed MouseEvent 负责处理在组件上按下鼠标触发的鼠标事件 当在组件上按下鼠标时 监视器将自动调用接口中的这个方法对事件作出处理 2 mouseReleased MouseEvent 负责处理在组件上释放鼠标触发的鼠标事件 当在组件上释放鼠标时 监视器将自动调用接口中的这个方法对事件作出处理 3 mouseEntered MouseEvent 负责处理鼠进入组件触发的鼠标事件 当鼠标进入组件上方时 监视器将自动调用接口中的这个方法对事件作出处理 4 mouseExited MouseEvent 负责处理鼠标离开组件触发的鼠标事件 当鼠标离开组件时 监视器自动调用接口中的这个方法对事件作出处理 5 mouseClicked MouseEvent 负责处理在组件上单击或连击鼠标触发的鼠标事件 当单击或连击鼠标时 监视器自动调用接口中的这个方法对事件作出处理 2 MouseMotionListener接口 使用MouseMotionListener接口可以处理以下两种操作触发的鼠标事件 1 在事件源上拖动鼠标 2 在事件源上移动鼠标 MouseMotionListener接口中有如下方法 1 mouseDragged MouseEvent 负责处理在组件上拖动鼠标触发的鼠标事件 当在组件上拖动鼠标时 监视器调用接口中的这个方法对事件作出处理 2 mouseMoved MouseEvent 负责处理在组件上运动鼠标触发的鼠标事件 当在组件上运动鼠标时 监视器调用接口中的这个方法对事件作出处理 7 14焦点事件 组件可以触发焦点事件 组件可以使用publicvoidaddFocusListener FocusListenerlistener 增加焦点事件监视器 当组件获得焦点监视器后 如果组件从无输入焦点变成有输入焦点或从有输入焦点变成无输入焦点都会触发FocusEvent事件 创建监视器的类必须要实现FocusListener接口 该接口有两个方法 publicvoidfocusGained FocusEvente publicvoidfocusLost FocusEvente 当组件从无输入焦点变成有输入焦点触发FocusEvent事件时 监视器调用类实现的接口方法 focusGained FocusEvente 当组件从有输入焦点变成无输入焦点触发FocusEvent事件时 监视器调用类实现的接口方法 focusLost FocusEvente 7 15键盘事件 当按下 释放或敲击键盘上一个键时就发生了键盘事件 在Java1 2事件模式中 必须要有发生事件的事件源 当一个组件处于激活状态时 敲击键盘上一个键就导致这个组件上发生了键盘事件 事件源使用addKeyListener方法获得监视器 使用KeyListener接口处理键盘事件 接口KeyListener中有3个方法 publicvoidkeyPressed KeyEvente publicvoidkeyTyped KeyEvente publicvoidKeyReleased KeyEvente 8 弹出式菜单 弹出式菜单是一种非常方便的菜单工具 它平常依附在某个容器或组件上并不显现出来 当用户点击鼠标右键时它就会弹出来 W8 事件类型 总结 ActionEventActionListeneractionPerformed ActionEvente addActionListener TextEventTextListenertextValueChanged TextEvente addTextListener ItemEventItemListeneritemStateChanged ItemEvente addItemListener MouseEventMouseListenermouseClicked MouseEvente addMouseListener mousePressed MouseEvente mouseReleased MouseEvente mouseEntered MouseEvente mouseExited MouseEvente MouseEventMouseMotionListenermouseDragged MouseEvente addMouseMotionListener mouseMoved MouseEvente WindowEventWindowListenerwindowOpened WindowEvente addWindowListener windowClosing WindowEvente windowClosed WindowEvente windowIconified WindowEvente windowDeiconified WindowEvente windowActivated WindowEvente windowDeactivated WindowEvente 接口类型及所包含方法声明 ActionEvent类 1 ActionEvent类对应一个动作事件 如点击按钮 选择菜单项 单行文本框中输入字符串并按下回车键等等 都是ActionEvent类的事件 可能产生ActionEvent事件的AWT组件主要有 Button TextField MenuItemActionEvent类对应的监听器接口是ActionListener 事件源使用addActionListener ActionListenerlistener 方法来注册事件该类事件的监听器 ActionEvent类 2 ActionEvent类常用方法 publicStringgetActionCommand publicObjectgetSource publicintgetModifier ActionEvent SHIFT MASKActionEvent CTRL MASK处理ActionEvent事件的监听器接口是ActionListener 其中只包含一个方法 publicvoidactionPerformed ActionEvente 当ActionEvent事件发生时该方法被调用 重写该方法对ActionEvent事件进行处理 TextEvent类 TextEvent事件发生在文本组件中的字符串发生改变时 前面介绍的ActionEvent事件也可以发生TextField上 但它产生的时机是输入文本并按下Enter键之后 TextEvent事件是在向TextArea输入字符串而还未按下Enter键时就会引发的事件 处理TextEvent事件的监听器接口是TextListener 该接口中只包含1个方法 voidtextValueChanged TextEvente ItemEvent类 ItemEvent类事件是发生在具有项目选择功能组件上的 比如 选中List或Choice中的选项 或是改变了Checkbox的状态时 就会引发ItemEvent事件 ItemEvent类常用方法 publicObjectgetItem publicintgetStateChange ItemEvent SELECTED ItemEvent DESELECTED处理ItemEvent事件 需要实现ItemListener接口 其中包含1个方法 publicvoiditemStateChanged ItemEvente 当选项的选择状态发生改变时被调用 MouseEvent类 1 MouseEvent事件是用户使用鼠标在某个组件上进行某种动作时产生的事件 比如鼠标单击组件 鼠标移入组件区域 鼠标移出组件区域等等都会发生MouseEvent事件 MouseEvent类常用方法 publicintgetClickCount publicPointgetPoint publicintgetX publicintgetY publicintgetButton 那个鼠标按键发生改变 MouseEvent类 2 与MouseEvent事件对应的监听器接口有2个 MouseListener和MouseMotionListenerMouseListener接口主要处理鼠标单击 按下 释放 移入组件和移出组件的事件 该接口包含5个方法 voidmouseClicked MouseEvente voidmousePressed MouseEvente voidmouseReleased MouseEvente voidmouseEntered MouseEvente voidmouseExited MouseEvente MouseEvent类 3 MouseMotionListener MouseMotionListener接口负责处理鼠标的拖放和移动事件 该接口包含2个方法 voidmouseDragged MouseEvente voidmouseMoved MouseEvente KeyEvent类 1 KeyEvent事件是与键盘相关的事件 当KeyEvent事件的事件源处于激活状态时 按下 释放或敲击键盘上的某个键会引发KeyEvent事件 KeyEvent类常用方法 publicchargetKeyChar publicintgetKeyCode publicstaticStringgetKeyText intkeyCode VK 1VK AVK F1VK PAGE DOWN KeyEvent类 2 KeyListener 处理KeyEvent事件的监听器接口是KeyListener 其中包含3个方法 voidkeyTyped KeyEvente voidkeyPressed KeyEvente voidkeyReleased KeyEvente WindowEvent类 WindowEvent事件是发生在窗口对象上的事件 当用户或应用程序在打开 关闭 最大或最小化窗口等时发生WindowEvent事件 处理WindowEvent事件需要实现WindowListener接口 其中包含7个方法 voidwindowOpened WindowEvente voidwindowClosing WindowEvente voidwindowClosed WindowEvente voidwindowIconified WindowEvente voidwindowDeiconified WindowEvente voidwindowActivated WindowEvente voidwindowDeactivated WindowEvente 练习 1 TextField类响应的事件方法是 A 单击B 双击C 删除D 按Enter回车2 菜单项可以看作另一种形式的按钮 当用鼠标左键单击菜单项时 可以触发菜单命令 3 标签 Label 内显示的内容一般是不可改变的 即标签一旦创建并设置内容 其内容便不可以改变 4 采用事件适配器为比采用事件监听器的执行效率更高 因为事件适配器可以只处理所需处理的事件 5 要重新绘制组件 通常不直接调用java awt Component的方法update或paint 而是通过调用 通知系统重绘组件 6 接口java awt event ActionListener的方法actionPerformed的返回值类型是 7 下面哪个容器的默认布局管理器不是FolwLayout A PanelB JPanelC AppletD JFrame
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!