当前位置:文档之家› Java事件处理

Java事件处理

实验五Java事件处理

实验五Java事件处理 实验目的 1.掌握Java语言中的事件处理方法 2.掌握Java语言中事件源、监视器和处理事件的接口的概念 实验内容 1.图形用户界面设计程序(ArtFo nt.java) 在实验三第1题的基础上,添加事件处理机制,并逐步完善程序功能。分别用ArtFont 类的对象做监视器和匿名内部类的对象做监视器实现。 要求实现如下功能: 当在文本框中输入文字后回车,在文本域中显示输入的文字。当分别选择粗体和斜体 复选框时,文本域中的文字分别显示粗体和斜体样式。 当点击颜色按钮时,出现颜色选择对话框,选择需要的颜色,按确定按钮后,按钮的 前景色和文本域的前景色设置为选定的颜色。 当选择字体样式下拉框中的某一字体样式时,文本域中的文字设置为指定的字 体样式。 当选择字体大小下拉框中的某一字体大小时,文本域中的文字设置为指定的字 体大小。 当选择窗体样式下拉框中的某一窗体效果时,窗体外观改变为指定的窗体外观。 图1程序界面运行效果 package Sy; import java.awt.*; import java.awt.event.*;

import javax.swing.*; public class ArtFont extends JFrame { static ArtFont artFont; JComboBox fontType;// 字体样式下拉框 JComboBox fontSize;// 字体大小下拉框 JComboBox windowStyle;// 窗体样式下拉框 JCheckBox boldBx;// 粗体按钮 JCheckBox italicBx;// 斜体按钮 JButton colorBtn;// 颜色按钮 String[] fontNames;// 字体名称 String[] fontSizes;// 字体大小 JLabel label;// 输入提示标签 JTextField inputText;// 文字输入框 JTextArea txtArea;// 文字显示区 JPanel northPanel;// 字体设置 JPanel centerPanel;// 显示效果区 JPanel southPanel;/样式设置 Font font; int boldStyle, italicStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle = Color.black;// 设置字体的默认颜色为黑色 String[] style = { "默认显示效果 ", "Windows 显示效果 ", "Unix 显示效果 " }; public ArtFont() { super(”字体设置"); // 设置默认字体 boldStyle = 0; italicStyle = 0; fontSizeStyle = 10; fontNameStyle = "宋体 ";

JavaSwing中处理各组件事件的一般步骤完整版

J a v a S w i n g中处理各组件事件的一般步骤 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

Java Swing中处理各组件事件的一般步骤是: 1.新建一个组件(如JButton)。 2.将该组件添加到相应的面板(如JPanel)。 3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。 4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。 以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。 为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。 首先,我们利用单个监听器来实现该程序。我们定义一个名为Simple1的类来包括所有代码。所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。以下是代码: import .*; import .*; public class Simple1 {

private static JFrame frame;dd(myPanel); (); (true); } } 让我们来看看以上代码是如何工作的。在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。相应的变量Frame,button1,button2定义在程序的开头部分。 在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。当GUI 建立后,我们将面板添加到窗体并显示结果。当用户点击按钮时,程序调用actionPerformed方法,通过if语句来判断是哪一个按钮被点击,然后在对话框中显示相应的内容。 利用一个监听器来处理事件的缺点是,当程序比较复杂时,需要一大串的if 语句来实现,程序代码较难阅读与维护。当然,如果处理的事件较少,这种方式比较简单。 通过使用匿名内部类可以解决上述存在的问题。使用简单的匿名内部类作为addActionListener的变量即可。以下是实现代码:

Java Swing中处理各组件事件的一般步骤

Java Swing中处理各组件事件的一般步骤是: 1.新建一个组件(如JButton)。 2.将该组件添加到相应的面板(如JPanel)。 3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。 为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。 首先,我们利用单个监听器来实现该程序。我们定义一个名为Simple1的类来包括所有代码。所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。以下是代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Simple1 { private static JFrame frame; // 定义为静态变量以便main使用 private static JPanel myPanel; // 该面板用来放置按钮组件 private JButton button1; // 这里定义按钮组件 private JButton button2; // 以便让ActionListener使用 public Simple1() // 构造器, 建立图形界面 { // 新建面板 myPanel = new JPanel(); // 新建按钮 button1 = new JButton("按钮1"); // 新建按钮1 button2 = new JButton("按钮2"); SimpleListener ourListener = new SimpleListener(); // 建立一个actionlistener让两个按钮共享 button1.addActionListener(ourListener); button2.addActionListener(ourListener); myPanel.add(button1); // 添加按钮到面板 myPanel.add(button2); }

Java的事件处理机制

Java的事件处理机制 概念部分: 1.事件:Event 是一种消息对象,封装了与事件发生相关的信息, 如操作键盘会引发KeyEvent事件, 单击关闭按钮会引发WindowEvent事件, 单击命令按钮或选择菜单项目会引发ActionEvent事件 等等 2.事件源:Event Source 产生事件的对象, 如命令按钮和单选按钮都是事件源,单击他们时,会引发ActionEvent事件 单选按钮会产生ItemEvent事件。 3.事件监听器:Event Listener 在事件发生时,事件源负责给予通知的一种对象。接收到事件通知的监听器主动的对事件进行处理。 两件事:将自己注册给事件源;事件的处理 4.事件处理器Event Handler 事件处理方法,用来接受事件并处理事件的方法。 Java事件处理的步骤: 1.类实现相应的事件监听器接口 2.重写接口中抽象方法 3.给事件源注册事件监听器 【例题】关闭窗口的实现

public class NotepadDemo{ private Frame mainForm; private MenuBar mb; private Menu m1; private Menu m2; private MenuItem mExit; private MenuItem mi1; private MenuItem mi2; private ExitHandler eh; public NotepadDemo(){ mainForm = new Frame(); mb = new MenuBar(); m1 = new Menu("文件(F)"); m2 = new Menu("编辑(E)"); mi1 = new MenuItem("新建 Ctrl + N"); mi2 = new MenuItem("打开 Ctrl + O"); mExit = new MenuItem("退出(X)"); mainForm.setMenuBar(mb); mb.add(m1); mb.add(m2); m1.add(mi1); m1.add(mi2); m1.add(mExit); mainForm.setBounds(0, 0, 400, 300); eh = new ExitHandler(); //注册事件监听器 mExit.addActionListener(eh); mi1.addActionListener(eh); mi2.addActionListener(eh); //注册Form的关闭监听器 mainForm.addWindowListener(eh); } public void NotepadShow(){ mainForm.setVisible(true); } public static void main(String[] args) { NotepadDemo nd = new NotepadDemo(); nd.NotepadShow();

java事件处理

教案首页(以2课时为单元)

事件处理 所谓事件,实际就是用户对程序的某一种功能性操作。自从JDK1.1以后,Java的事件处理模式都是以委托事件模式(Delegation Event Model)来处理用户所触发的事件。这就是说,当用户触发的事件不是我们想要的事件时,我们就不需要进行处理,这样就增加了系统的效率,整个事件处理结构也变得很清晰。 事件处理需要注意三个问题:第一是事件产生的来源(Source),也就是说什么组件要被处理。比如按钮Button被单击,则事件来源就是按钮;第二就是什么事件要被处理。一般来说事件是和组件相对应的,什么样的组件就会触发什么样的事件,而往往一个组件可能会触发多个事件,这就需要我们按具体情况进行设计。Java中的委托事件模式在此有要个规定,就是说需要对哪个组件进行事件处理,则必须给这个组件进行事件注册。一般来说这种注册很简单,基本都是用方法“addXXXListener”来注册,也就是给组件加上事件监听器。比如按钮组件就需要用addActionListener来进行注册;第三就是编写事件处理程序了,用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。比如按钮的事件处理我们都写在方法actionPerformed()中。 Java中的事件相关类基本都在java.awt.event包,它提供AWT事件所需的类和接口,我们把这些事件称为AWTEvent,并分为两大类:Low-level-Event和Semantic Event,前者指的是一些低层次的事件,后者指一些有意义的动作。为了使大家清楚AWTEvent事件结构 在此我们将以上事件类及其相关内容列表如下 AWT Event

java事件

第一篇 在JAVA程序设计中,事件的处理是非常重要的,尤其是在需要自定义事件和设计JavaBean 时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。 下面用一个演示性的例子来说明事件及其处理过程 一.事件的组成 如果想要自定义一个事件,则必须提供一个事件的监听接口以及一个事件类。在JAVA 中监听接口继承java.util.EventListener,事件类继承java.util.EventObject.很多基本的事件在编程环境中都已经提供可以很方便使用,但是在自定义事件中必须要要了解这些。 下面是一个事件类的代码,事件类可以向用户处理程序提供被监听类的信息 import java.util.*; public class PropertyEvent extends EventObject { public PropertyEvent(){} } 下面是监听接口的代码 import java.util.*; public interface PropertyListener extends EventListener { public void propertyChanged(PropertyEvent propertyEvent); } 二.事件的处理机制 下面是一段简要的被监听类代码,通过代码分析事件处理过程 import java.util.*; public class Exam { private int property; //listeners用来存放已注册的监听对象 private Set listeners= new HashSet(); ..... public void addListener(PropertyListener propertyListener){ //listeners必须保证只能被一个线程访问 synchronized(listeners){ listeners.add(propertyListener); } } public void firePropertyChange(){ Iterator iterator; synchronized(listeners){ //将listeners中的类名放到iterator iterator = new HashSet(listeners).iterator(); }

实验五--Java事件处理

实验五--Java事件处理

实验五 Java事件处理 实验目的 1.掌握Java语言中的事件处理方法 2.掌握Java语言中事件源、监视器和处理 事件的接口的概念 实验内容 1.图形用户界面设计程序(ArtFont.java) 在实验三第1题的基础上,添加事件处理机制,并逐步完善程序功能。分别用ArtFont 类的对象做监视器和匿名内部类的对象做监视器实现。 要求实现如下功能: ●当在文本框中输入文字后回车,在文本域 中显示输入的文字。 ●当分别选择粗体和斜体复选框时,文本域 中的文字分别显示粗体和斜体样式。 ●当点击颜色按钮时,出现颜色选择对话 框,选择需要的颜色,按确定按钮后,按 钮的前景色和文本域的前景色设置为选 定的颜色。 ●当选择字体样式下拉框中的某一字体样 式时,文本域中的文字设置为指定的字体 样式。 ●当选择字体大小下拉框中的某一字体大 小时,文本域中的文字设置为指定的字体 大小。 ●当选择窗体样式下拉框中的某一窗体效 果时,窗体外观改变为指定的窗体外观。

图1 程序界面运行效果 package Sy; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ArtFont extends JFrame { static ArtFont artFont; JComboBox fontType;//字体样式下拉框 JComboBox fontSize;//字体大小下拉框 JComboBox windowStyle;//窗体样式下拉框 JCheckBox boldBx;// 粗体按钮 JCheckBox italicBx;// 斜体按钮 JButton colorBtn;// 颜色按钮 String[] fontNames;// 字体名称 String[] fontSizes;// 字体大小 JLabel label;// 输入提示标签

java 事件处理模型

java 事件处理模型 当用户在Java GUI界面进行一些操作时,例如,移动鼠标、选取菜单项目等,将会引发相关事件(Event)。在Java中,事件用具体的对象来表示,用户的相关动作会由JVM(Java虚拟机)创建成相应的事件对象,用以描述事件来源、事件类型以及相关的信息。 1.事件处理流程 Java对事件的处理采用授权事件模型,也称为委托事件模型(Delegation Even t Model)。在这个模型下,每个组件都有相应的事件,如按钮具有单击事件,文本域具有内容改变事件等。当对于某个组件的事件被触发后,组件就会将事件发送给组件上注册的每一个事件监听器(EventListener),事件监听器中定义了与不同事件相对应的事件处理者,此时事件监听器会根据不同的事件信息调用不同的事件处理者,完成对这次事件的处理。只有向组件注册的事件监听器才会收到事件信息。 此种模型的显著特点是,当组件被触发事件后,本身不去处理,而将处理的操作交给第三方来完成。例如,当用户在GUI界面单击了一个按钮信息,此时按钮就是一个事件源对象,按钮本身没有权利对这次单击做出反应,需要做的就是将信息发送给本身注册的监听器(事件处理者)来处理。 在现实生活中,授权处理的实例也是非常的多。打个不太恰当的比喻,比如说有一位李先生,李先生可能会发生很多法律纠纷,可能是民事法律纠纷,也可能是刑事法律纠纷,那么李先生可以请律师,他可以授权王律师负责帮他打民事法律的官司,同时也可以授权张律师帮他打刑事法律的官司。 这个请律师的过程从李先生的角度来看,就是授权的过程,而从王律师和张律师的角度来看,一旦被授权,他们就得时刻对李先生负责,时刻“监听”李先生的事件信息,一旦发生民事纠纷了,王律师就要马上去处理,而一旦发生刑事纠纷了,张律师就要马上进行处理。此时此刻,李先生就是事件源,王律师是一个事件处理者,张律师是另外一个事件处理者,民事纠纷和刑事纠纷就是不同类型的事件。 2.事件处理元素 在事件处理的过程中,主要涉及三类对象,分别为事件、事件源和事件处理者。 Event事件 用户对界面的各种操作总是以类的形式出现,如键盘操作对应的事件类是Key Event。在授权事件模型中,事件是一个描述事件源状态发生改变的对象。通过鼠标、键盘与GUI界面直接或间接交互都会生成事件,如用户在文本框中键入文本后,按回车键,单击按钮,在一个下拉列表中选择一个条目等操作。

Java事件处理机制- 事件监听器的四种实现方式

Java事件处理机制- 事件监听器的四种实现方式 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: Java代码复制代码收藏代码 import javax.swing.*; import java.awt.*; import java.awt.event.*; /** *Java事件处理机制:自身类作为事件监听器 *@author Winty(wintys@https://www.doczj.com/doc/5a2697406.html,) *@version 2008-12-3 */ class ThisClassEvent extends JFrame implements ActionListener{ JButton btn; public ThisClassEvent(){ super("Java事件监听机制"); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); btn.addActionListener(this); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); } /**************************************/ public void actionPerformed (ActionEvent e){ Container c=getContentPane(); c.setBackground(Color.red); } /**************************************/ public static void main(String args[]){

实验五 Java事件处理

实验五 Java事件处理 实验目的 1.掌握Java语言中的事件处理方法 2.掌握Java语言中事件源、监视器和处理事件的接口的概念 实验内容 1.图形用户界面设计程序(ArtFont.java) 在实验三第1题的基础上,添加事件处理机制,并逐步完善程序功能。分别用ArtFont类的对象做监视器和匿名内部类的对象做监视器实现。 要求实现如下功能: 当在文本框中输入文字后回车,在文本域中显示输入的文字。 当分别选择粗体和斜体复选框时,文本域中的文字分别显示粗体和斜体样式。 当点击颜色按钮时,出现颜色选择对话框,选择需要的颜色,按确定按钮后, 按钮的前景色和文本域的前景色设置为选定的颜色。 当选择字体样式下拉框中的某一字体样式时,文本域中的文字设置为指定的字 体样式。 当选择字体大小下拉框中的某一字体大小时,文本域中的文字设置为指定的字 体大小。 当选择窗体样式下拉框中的某一窗体效果时,窗体外观改变为指定的窗体外观。 图1 程序界面运行效果 package Sy;

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ArtFont extends JFrame { static ArtFont artFont; JComboBox fontType;//字体样式下拉框 JComboBox fontSize;//字体大小下拉框 JComboBox windowStyle;//窗体样式下拉框JCheckBox boldBx;// 粗体按钮 JCheckBox italicBx;// 斜体按钮 JButton colorBtn;// 颜色按钮 String[] fontNames;// 字体名称 String[] fontSizes;// 字体大小 JLabel label;// 输入提示标签 JTextField inputText;// 文字输入框 JTextArea txtArea;// 文字显示区 JPanel northPanel;// 字体设置 JPanel centerPanel;// 显示效果区 JPanel southPanel;//样式设置

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

实验四Java事件处理 实验目的 1.掌握Java语言中的事件处理方法 2.掌握Java语言中事件源、监视器和处理事件的接口的概念 实验导读 1. Java事件处理简介 学习组件除了了解组件的属性和功能外,学习组件除了了解组件的属性和功能外,一个更重要的方面是学习怎样处理组件上发生的界面事件。当用户在文本框中输入文本后按Enter键、单击按钮、在一个下拉列表框中选择一个条目等操作时,都发生界面事件。在学习处理事件时,必须很好地掌握事件源、监视器、处理事件的接口这三个概念。 ●事件源: 能够产生事件的对象都可以成为事件源,如文本框、按钮、下拉式列表等。也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生事件的对象。 ●监视器: 需要一个对象对事件源进行监视,以便对发生的事件作出处理。事件源通过调用相应的方法将某个对象作为自己的监视器。例如,对于文本框,这个方法是: addActionListener(监视器); 对于获取了监视器的文本框,当文本框获得输入焦点之后,如果用户按Enter键,Java 运行系统就自动用ActionEvent类创建一个对象,即发生了ActionEvent事件。也就是说,事件源获得监视器后,相应的操作就会导致事件的发生,并通知监视器,监视器就会做出相应的处理。 ●处理事件的接口: 监视器负责处理事件源发生的事件。监视器是一个对象,为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法的方法体,那么当事件源发生事件时,监视器就自动调用类实现的某个接口中的方法。 2.文本框上的ActionEvent事件 java.awt.event包中提供了许多事件类和处理各种事件的接口。对于文本框,这个接口的名字是ActionListener,这个接口中只有一个方法: public void actionPerformed(ActionEvent e) 当在文本框中输入字符并按Enter键时,java.awt.event包中的ActionEvent类自动创建一个事件对象,并将它传递给actionPerformed(ActionEvent e)方法中的参数e,监视器自动调用这个方法对发生的事件做出处理。

相关主题
文本预览
相关文档 最新文档