实验四 Java事件处理(汽院含答案).docVIP

  • 54
  • 0
  • 约2.21万字
  • 约 23页
  • 2020-10-05 发布于浙江
  • 举报
实验四 Java事件处理 实验目的 掌握Java语言中的事件处理方法 掌握Java语言中事件源、监视器和处理事件的接口的概念 实验导读 Java事件处理简介 学习组件除了了解组件的属性和功能外,学习组件除了了解组件的属性和功能外,一个更重要的方面是学习怎样处理组件上发生的界面事件。 当用户在文本框中输入文本后按Enter键、单击按钮、在一个下拉列表框中选择一个条目等操作时,都发生界面事件。在学习处理事件时,必须很好地掌握事件源、监视器、处理事件的接口这三个概念。 事件源:  能够产生事件的对象都可以成为事件源,如文本框、按钮、下拉式列表等。也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生事件的对象。 监视器: 需要一个对象对事件源进行监视,以便对发生的事件作出处理。事件源通过调用相应的方法将某个对象作为自己的监视器。例如,对于文本框,这个方法是: addActionListener(监视器); 对于获取了监视器的文本框,当文本框获得输入焦点之后,如果用户按Enter键,Java运行系统就自动用ActionEvent类创建一个对象,即发生了ActionEvent事件。也就是说,事件源获得监视器后,相应的操作就会导致事件的发生,并通知监视器,监视器就会做出相应的处理。 处理事件的接口: 监视器负责处理事件源发生的事件。监视器是一个对象,为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法的方法体,那么当事件源发生事件时,监视器就自动调用类实现的某个接口中的方法。 文本框上的ActionEvent事件 java.awt.event包中提供了许多事件类和处理各种事件的接口。对于文本框,这个接口的名字是ActionListener,这个接口中只有一个方法: public void actionPerformed(ActionEvent e) 当在文本框中输入字符并按Enter键时,java.awt.event包中的ActionEvent类自动创建一个事件对象,并将它传递给actionPerformed(ActionEvent e)方法中的参数e,监视器自动调用这个方法对发生的事件做出处理。 所以,称文本框这个事件源可以发生ActionEvent类型事件。为了能监视到这种类型的事件,事件源必须使用addActionListener方法获得监视器;创建监视器的类必须实现接口ActionListener。只要学会了处理文本框这个组件上的事件,其他事件源上的事件的处理也就很容易学会,所不同的是事件源能发生的事件类型不同,所使用的接口不同而已。 ActionEvent类有如下常用的方法: public Object getSource() ActionEvent对象调用该方法可以获取发生ActionEvent事件的事件源对象的引用,即getSource()方法将事件源上转型为Object对象,并返回这个上转型对象的引用。 public String getActionCommand() ActionEvent对象调用该方法可以获取发生ActionEvent事件时,和该事件相关的一个命令字符串,对于文本框,当发生ActionEvent事件时,文本框中的文本字符串就是和该事件相关的一个命令字符串。 选择框和下拉列表上的ItemEvent事件 选择框从未选中状态变成选中状态或从选中状态变成未选中状态时、下拉列表选项列表中选中某个选项时就发生ItemEvent事件,即ItemEvent类自动创建一个事件对象。 发生ItemEvent事件的事件源获得监视器的方法是addItemListener(监视器)。处理ItemEvent事件的接口是ItemListener,创建监视器的类必须实现ItemListener接口,该接口中只有一个方法。当选择框发生ItemEvent事件时,监视器将自动调用接口方法: itemStateChanged(ItemEvent e) 对发生的事件进行处理。 鼠标事件 任何组件上都可以发生鼠标事件,如:鼠标进入组件、退出组件、在组件上方单击鼠标、拖动鼠标等都触发组件发生鼠标事件,也就是说,组件可以成为发生鼠标事件的事件源。 使用MouseListener接口可以处理5种操作触发的鼠标事件: (1)在事件源上按下鼠标键。 (2)在事件源上释放鼠标键。 (3)在事件源上击鼠标键。 (4)鼠标进入事件源。 (5)鼠标退出事件源。 鼠标事件的类型是MouseEvent,即当发生鼠标事件时,MouseEvent类自动创建一个事件对象。 MouseListener接口中的方法: (1)mousePressed(MouseEvent) 负

文档评论(0)

1亿VIP精品文档

相关文档