黑马程序员_学习日记十一_GUI

来源:互联网 发布:阿里云主机登录密码 编辑:程序博客网 时间:2024/04/29 18:02

---------------------- android培训java培训、期待与您交流! ----------------------

GUI概述

    GUI(图形用户接口):用图形的方式,来显示计算机操作的界面,这样更加方便更加直观。Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。

java.Awt:AbstractWindow ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属于重量级控件。

javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现。增强了可移植性,属于轻量级控件。

    Component: Component抽象类是java.Awt包下的一个抽象类,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条都是组件示例。类是与菜单不相关的 Abstract Window Toolkit 组件的抽象超类。还可以直接扩展类Component来创建一个轻量级组件。轻量级组件是与本机不透明窗口不相关的组件。

    Container:Container是Component类的子类,容器,该类对象是一个可包含其他 AWT 组件的组件。添加到容器中的组件放在一个集合中。集合的顺序将定义组件在容器内的正向堆栈顺序。如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部。

GUI布局

    容器中的组件的排放方式,就是布局。

    常见的布局管理器:

    1.FlowLayout(流式布局管理器),从左到右的顺序排列。Panel默认的布局管理器。

    2.BorderLayout(边界布局管理器),东、西、南、北、中,Frame默认的布局管理器。

    3.GridLayout(网格布局管理器),规则的矩阵。

    4.CardLayout(卡片布局管理器),选项卡。

    5.GridBagLayout(网格包布局管理器),非规则的矩阵。

GUI-Frame

    Frame类:是带有标题和边框的顶层窗口。它默认的布局管理器的BorderLayout(边界布局管理器)。

    创建图形化界面的简要步骤:

    1.创建Frame窗体,Frame frame = new Frame(“title”);

    2.对窗体进行基本设置,比如大小,位置,窗体布局。

    3.定义组件。

    4.将组建通过窗体的add()方法添加到窗体中。

    5.让窗体显示,通过setVisible(true)方法来完成。

    图形化界面是由另外一个线程来控制的。

GUI-事件监听机制

    事件监听机制由事件源、事件(Event)、监听器(Listener)、事件处理(引发事件后处理方式)组成的。

    事件源:可以是Awt包或者Swing包中的那些图形界面组件。

    事件:每一个事件源都有触发自己的事件和共性事件。

    监听器:将可以触发某一个事件的动作(可能不止一个动作)都已经封装到了监听器中。

    以上三者在java中都已经定义好了,直接获取其对象来用就可以了,程序所要做的动作就是对产生的动作进行处理。

事件监听机制流程图:

GUI-窗体事件

    实现窗体事件需要调用Frame的父类Window中的void addWindowListener(WindowListener l)方法,但是该方法需要实现WindowListener接口作为参数,这样,就要调用到实现了WindowListener接口的WindowAdapter类作为addWindowListener()方法的参数,并且覆写WindowAdapter类中的方法。参见视频。

GUI-Action事件

    在Button类中,如果需要给Button对象添加事件监听,同样也要调用Button类中的voidaddActionListener(ActionListener l)方法,利用匿名内部类的原理覆盖ActionListener接口中的actionPerfomed(ActionEvent e)方法,在该方法中实现事件处理方式。

GUI-鼠标事件

    Component抽象类中的voidaddMouseListener(MouseListener l),该方法添加指定的鼠标监听器,以接收发自此组件的鼠标事件。如果侦听器 lnull,则不会抛出异常并且不执行动作。该方法需要实现MouseListener接口作为参数,这样,就要调用MouseListener接口的MouseAdapter类,并实现类中的相应方法,然后,作为addMouseListener()的参数。

    在MouseAdapter类中可以看到,所有的方法都需要一个MouseEvent类对象作为参数。而在MouseEvent类中,则具体封装了一些鼠标事件  。

GUI-键盘事件

    同样,在Component抽象类中还有键盘监听事件void addKeyListener(KeyListener l),它的用法和鼠标事件类似。

GUI-对话框Dialog

    Dialog类是Window类的子类,是一个带标题和边界的顶层窗口,边界一般用于从用户处获得某种形式的输入。Dialog 的大小包括边界所指定的任何区域,它的默认布局为BorderLayout

    在构造Dialog 时,dialog需要拥有另一个窗口作为它自己的窗口。当可见的 dialog 的所有者窗口被最小化时,dialog会自动隐藏为对用户不可见。当所有者窗口被还原时,dialog重新又变为用户可见的。

GUI-菜单Menu

    MenuBar(菜单栏)类继承自MenuComponent类,该类封装绑定到框架的菜单栏的平台概念。为了将该菜单栏与Frame对象关联,可以调用该框架的setMenuBar方法。

    Menu(菜单)类,该类对象是从菜单栏部署的下拉式菜单组件。菜单可以是任意菜单。可以打开分离式菜单,并从其父菜单栏或菜单中拖开。释放鼠标按钮之后,它仍然在屏幕上。菜单中的每一项都必须属于MenuItem类。它可以是MenuItem的一个实例、子菜单(Menu的一个实例)、或复选框(CheckBoxMenuItem的一个实例)。

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

原创粉丝点击