第八章+AWT及AWT事件处理
- 格式:ppt
- 大小:1.52 MB
- 文档页数:47
Awt事件处理机制——维信科技Awt事件处理机制:我们知道,当我们创建frame的时候,出来的窗口右上角上的叉号,我们关闭的时候没有任何响应。
这是因为,在awt中,所有的事件都是有特定的对象完成,窗口或者组件没有处理事件的功能。
当我们点击关闭时,触发了一个事件,这个事件或触发相应的事件监听,事件监听器调用相应的方法对事件做处理。
Eg:关闭窗口(维信科技)public class ButTest extends Frame{public static void main(String[] args) {ButTest b = new ButTest();b.setSize(300,300);b.setVisible(true);b.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}}public class ButT est extends Frame{Button b = new Button("Click ");TextField t = new TextField("",20);int clickCount = 0;public ButTest(){super("事件");setLayout(new FlowLayout());setSize(200,200);add(t);add(b);setVisible(true);b.addActionListener(new ButtonListener());this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}class ButtonListener implements ActionListener{public void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubclickCount++;t.setText("count"+clickCount);}}public static void main(String[] args) { ButTest b = new ButTest();}}。
Java语言程序设计课程教学辅导技术资料——第8章JavaGUI技术—AWT组件及事件编程目录1.1Java语言程序设计课程教学辅导技术资料——第8章Java GUI 技术—AWT组件及事件编程 (2)1.1.1Java GUI编程 (2)1.1.2Java AWT中容器组件 (4)1.1.3Java AWT中的菜单组件 (11)1.1.4GUI用户界面的事件编程 (13)1.1.5综合实例:利用AWT技术所实现的一个Java Application 程序 (17)1.1Java语言程序设计课程教学辅导技术资料——第8章Java GUI 技术—AWT 组件及事件编程【教学目标】在本单元中希望您重点了解并掌握如下知识点:AWT 抽象窗口工具集实现的原理,四大类AWT GUI组件的编程技术(基本组件、容器组件、菜单条菜单组件和弹出式菜单组件),事件编程技术(ActionListener、MouseListener、ItemListener和WindowListener)。
1.1.1Java GUI编程1、GUI界面(1)用户与程序之间交互的一个控制面板,其内包含有菜单、控件(或组件)和容器并能响应用户的事件。
(2)面向对象的图形用户界面基于“面向对象”的思想互相交换信息,即尽可能在屏幕上用形象的图标和窗口等来代表有用的资源和可启用的对象。
图形界面对象:代表特定的软件、命令、过程、资源、提示信息等的资源(图标(Icon)、窗口(Window)、菜单(Menu)/菜单项(Menu Item)、按钮(Button)、文本框(Label)、列表框(List)…等)2、Java中的GUI实现方式(1)采用AWT(抽象窗口工具集)技术从而可使GUI适用于不同OS的环境。
抽象窗口工具包AWT (Abstract Window Toolkit) 是API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。
Java----AWT组件开发和Swing界⾯编程⼀、AWT组件开发1、AWTAWT是抽象窗⼝⼯具箱的缩写,它为编写图形⽤户界⾯提供了⽤户接⼝,通过这个接⼝就可以继承很多⽅法,省去了很多⼯作。
AWT还能使应⽤程序更好地同⽤户进⾏交互。
AWT中的容器是⼀种特殊的组件,他可以包含其他组件,即可以把组件⽅法容器中。
类是⽤来存放其他组件的Component类的⼦类,Frame类⼜是Component的⼦类。
Frame类⽤于创建具有标题栏和边界的窗⼝。
这⾥通过继承Frame类来建⽴⾃⼰的界⾯。
[java]1. public class test extendsFrame{2. //创建构造器3. public test() throws HeadlessException {4. this.setTitle("第⼀个窗⼝程序");5. //x , y是距离显⽰器左上⾓的距离;w , h是窗⼝的长宽6. this.setBounds(100, 100, 250, 250);7. //或者使⽤以下⽅式代替上⾯的⼀句代码8. // this.setLocation(100, 100);9. // this.setSize(250 , 250);10. this.setVisible(true);11. }12. public static void main(String[] str) {13. new test();14. }15. }上⾯是窗⼝中⼀些必不可少的东西,下⾯是⼀些窗⼝的基础应⽤:>setTitle(“窗⼝”):定义窗⼝名称>add(button):把按钮添加到窗⼝中>setBackground(Color):设置窗⼝的背景颜⾊>setResizable(boolean):设置窗⼝⼤⼩是否可以改变>setAlwaysOnTop(boolean):设置窗⼝是否总在最上⾯>setBounds(x, y, w, h):设置窗⼝起始位置和⼤⼩>setVisible(boolean):设置窗⼝可见如果想创建多个窗⼝,只需要在主⽅法main()中创建多个对象就⾏了。
swing事件处理机制Swing事件处理机制Swing是Java中用于创建图形用户界面(GUI)的一套组件库。
在Swing中,事件处理机制起着至关重要的作用。
本文将介绍Swing 事件处理机制的基本原理和使用方法。
事件处理机制是指当用户与GUI界面交互时,系统会自动检测并处理用户触发的事件。
在Swing中,事件可以是鼠标点击、键盘输入、窗口关闭等用户行为。
事件处理机制的核心思想是“观察者模式”,即当事件发生时,会通知相应的事件监听器进行处理。
在Swing中,事件源(Event Source)是指能够触发事件的组件,如按钮、菜单等。
事件监听器(Event Listener)是实现了特定接口的类,用于监听特定类型的事件。
当事件源触发事件时,会调用相应的事件监听器的方法进行处理。
Swing事件处理机制的基本步骤如下:1. 创建事件源:首先需要创建一个能够触发事件的组件,如按钮。
2. 创建事件监听器:根据需要,创建一个事件监听器类并实现相应的接口,如ActionListener接口用于处理按钮点击事件。
3. 注册事件监听器:将事件监听器注册到事件源上,以便监听事件的发生。
4. 处理事件:当事件源触发事件时,系统会自动调用事件监听器的方法进行处理。
下面以一个简单的示例来说明Swing事件处理机制的使用方法。
假设我们需要创建一个界面,其中包含一个按钮,点击按钮后会弹出一个对话框显示一条消息。
我们需要创建一个JFrame对象作为界面的容器,并设置布局管理器和关闭操作。
然后,创建一个JButton对象作为按钮,并设置按钮的文本。
接下来,创建一个JOptionPane对象作为对话框,并设置对话框的消息。
然后,我们需要创建一个事件监听器类,实现ActionListener接口。
在事件监听器类中,需要实现actionPerformed方法,用于处理按钮点击事件。
在该方法中,我们调用JOptionPane的showMessageDialog方法,将对话框显示出来。
Java AWT事件处理1 AWT事件处理基本概念AWT事件处理的过程中,主要涉及3类对象。
(1) Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent。
其实例在改事件发生时有系统自动产生。
(2) Event Source(事件源):事件发生的场所,通常就是各个组件,例如按钮Button。
(3) Event Monitor(事件监听器):接收事件对象并对其进行处理的类的对象,通常其中某个成员方法对事件进行相应的处理。
事件委托处理模型图10-10 事件委托处理模型Java采取了事件委托处理模型(Delegation Model),事件源自己不处理事件,而是把在其自身所有可能发生的事件委托给事件监听器来处理。
比如,在Canvas对象上既可能发生鼠标事件,也可能发生键盘事件,该Canvas对象就可以委托给事件监听器1来处理鼠标事件,同时委托给事件监听器2来处理键盘事件。
委托模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。
2 事件事件分类。
按事件的性质分类java.util.EventObject类是所有事件对象的基础父类,所有事件都是由它派生出来的。
AWT的相关事件继承于java.awt.AWTEvent类,这些AWT事件分为两大类:低级事件和高级事件。
(1)低级事件低级事件是指基于组件和容器的事件,当一个组件上发生事件,如鼠标的进入、点击、拖放等,或组件的窗口开关等时,触发了组件事件。
—ComponentEvent(组件事件:组件尺寸的变化、移动);—ContainerEvent(容器事件:组件增加、移动);—WindowEvent(窗口事件:关闭窗口、窗口闭合、图标化);—FocusEvent(焦点事件:焦点的获得和丢失);—KeyEvent(键盘事件:键按下、释放);—MouseEvent(鼠标事件:鼠标单击、移动)。
AWT事件处理机制在事件处理的过程中主要涉及3类对象1.事件,⽤户对界⾯操作在Java语⾔上的描述以类的形式出现,例如键盘操作对应的事件类是KeyEvent2.事件源,事件发⽣的场所,通常是各个组件,例如按钮Button3.事件处理者,接收事件对象并对其进⾏处理的对象同⼀个事件源可能发⽣多种事件,所以Java采取授权处理机制,事件源把⾃⾝可能发⽣的事件分别授权给不同的事件处理者进⾏处理。
有时也将事件处理者称为监听器,因为监听器时刻监听事件源发⽣的事件类型,如果该事件类型与⾃⼰所负责处理的事件类型⼀致,就马上进⾏处理授权模型把事件的处理委托给外部处理实体进⾏处理,实现将事件源和监听器分开的机制。
事件处理者(监听器)通常是⼀个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对应的接⼝import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class ep2_6 {public static void main (String[] args){Frame f=new Frame();Button b1=new Button("1");b1.addActionListener(new ButtonHandler());//注册监听器进⾏授权,该⽅法参数是事件处理对象f.setLayout(new FlowLayout());f.add(b1);f.setSize(100, 100);f.setVisible(true);}class ButtonHandler1 implements ActionListener//实现接⼝ActionListener才能做事件ActionEventd的处理者{public void actionPerformed1(ActionEvent e)//系统产⽣的ActionEvent事件对象被当作参数传递给该⽅法{System.out.println("处理");}@Overridepublic void actionPerformed(ActionEvent e) {// TODO ⾃动⽣成的⽅法存根}}}。