GUI图形用户界面

 

GUI图形用户界面

2007-06-05

 

GUI图形用户界面:Graphis User Interface计算机和用户进行交互的界面。

Java.awt.*;

Java.swing.*;

     

图形用户界面的继承关系

Object    

 

 

Component

向上继承

组件超类

Container

向上继承

容器(所有组件添加是通过容器进行管理的)

Window

向上继承

窗口

Frame

向上继承

视窗(容器组件中的一种)

JFame

向上继承

 

 

Fram视窗是一个特殊的组件,一叫作容器组件

按下某个组件,便产生某个事件:

按钮组件  -----事件对象1

单行文本框-----事件对象2

注:不同组件产生的对象是不同的,但按钮和单行文本框在某种情况下所生成事件对象是一致的。

常用事件类型对象:

 

java.awt.ComponentEvent

ØContainerEvent

容器事件

ØFocusEvent

焦点事件

ØWindowEvent

窗口事件

ØInputEvent

输入事件

§KeyEvent

键盘事件

§MouseEvent

鼠标事件

ØcontainerEvent:容器事件(容器组件改变后生成的事件类型的对象);

ØFocusEvent   焦点事件(当鼠标的焦点发生改变的过程中所生成的事件类型的对象)

ØWindowEvent   窗口事件(退出应用程序System.exit(0))

ØInputEvent      输入事件(所有输入设备发生改变的过程中所生成的事件类型的对象)

(1)   KeyEvent  键盘事件;

(2)   MouseEvent鼠标事件;

P193

ActionEvent:按钮被点击的过程中,或单行文本框点击了回车键的过程当中所生成的事件类型的对象都叫作ActionEvent

##事件委托

什么是事件委托(delegation)处理模型?

组件将事件处理的责任委托给特定的对象,当该组件发生指定的事件时,就通知所委托的对象,由这个对象来处理此事件。这个受委托的对象称为事件监听对象(eventlistener),每个组件都可根据需要指定(注册)一个或多个事件监听对象。

 

事件委托(delegation)处理模型中的四要素

1、事件源:导致事件发生的组件。(如点击确定按钮)

2、事件:事件源改变时生成的事件对象(当按钮被点击的过程中生成ActionEvent类型的对象

3、事件监听器(委托机制):针对特定事件的事件监听(类型)对象。(把事件生成的对象传给监听器,接收对象)

4、事件服务程序(实现了监听接口的服务类):事件产生时所执行的程序

   //要完全实现监听接口的抽象方法

5、事件服务方法:事件监听接口的抽象方法

   //事件产生所要执行的动作要写在事件服务方法中;

1.      接收事件类型的对象;

2.      给出应答代码。

 

概述:

当事件源发生改变的过程中,就会生成事件类型的对象,交由事件监听器进行处理(事先必须为事件源注册事件监听器),事件监听器就是我们所说的事件委托机制,事件监听器会将接收到的对象委托给事件服务程序进行处理,而事件服务程序中至少会有一个事件服务方法,方法做了两件事,一,接收事件类型的对象,二,给出应答代码。

 

 

 

 

 

 

 

 

 

 

 

 

 

常用的监听接口

ljava.util.EventListener

服务方法

ØActionListener

ActionPerformed(ActionEvent  e)

ØAdjustmentListener

 

ØComponentListener

 

ØContainerListener

 

ØFocusListener

 

ØItemListener

 

 

: 为按钮注册事件监听器

import java.awt.*;

import java.awt.event.*;//事件处理

import javax.swing.*;//java.awt的升级版本以J开头的组件封装在javax.swing包中

//javax.swing的组件直接或间接的继承了java.awt

 

class GuiDemo implements ActionListener

//本类也就是事件服务程序实现的事件监听接口

{

       JFrame jf;//视窗(容器组件)

       JButton jb;//按钮

       JTextField jtf;//单行文件框

       GuiDemo()//构造方法

       //对组件进行实例化,加监听接口

       {

      

       jf=new JFrame("我的第一个GUI");//实例JFrame视窗对象

       jb=new JButton("确定");//生成按钮组件对象,

       jtf=new JTextField(10);//单行文本长度不超过10个字符

       jb.addActionListener(this);//委托机制

       //为按钮注册事件监听器,把接收的对象交由本类也就是事件服务程序)来处理

    //方法中必须接收事件服务程序的对象

    //有什么类型的监听接口就有什么类型的监听装置

    jf.getContentPane().setLayout(new FlowLayout());

      

       //getContentPane()返回容器的对象

       //setLayout()  设置此容器的布局管理器。

       //new FlowLayout() 流水布局,构造一个新的 FlowLayout,居中对齐,

       //默认的水平和垂直间隙是 5 个单位。

       jf.getContentPane().add(jtf);//先得到容器,在容器上添加文本和按钮

       jf.getContentPane().add(jb);

       jf.pack();

       //调整此窗口的大小,以适合其子组件的首选大小和布局。

       //如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。

       //在计算首选大小之后,将会验证该 Window

       jf.setVisible(true);//窗体可见

       //java.awt Component如果为 true,则显示此组件;否则隐藏此组件

       }     

      

       int n=0;

    public void actionPerformed(ActionEvent e)

    //事件服务方法1接收事件类型的对象2应答,设置文本信息

    //接受委托

       {

        n++;

        jtf.setText("我的第一个GUI程序!");

        if(n%2==0)

        {

             jtf.setText("ddd ");//设置单行文本框文本信息

        }

           

       }

      

      

       public static void main(String args[])//主方法

       {

              GuiDemo g=new GuiDemo();

             

       }

      

}

作业:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值