15 图形化界面GUI

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

					GUI(图形用户界面)


   概念:
    GUI是Graphical User Interface的缩写,图形用户接口
    CLI是Command line User Interface的缩写 ,命令行用户接口,就是常见的Dos命令行操作。需要记忆一些常用的命令,
	操作不直观。如:创建文件夹,或者删除文件夹等
	
    Awt和Swing:
	Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
	java.Awt:Abstract Window ToolKit (抽象窗口工具包),依赖于本地系统平台,如颜色样式显示。属重量级控件。
	javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。
		     增强了移植性,跨平台,属轻量级控件。
    
    继承关系:
	Component:是GUI图形界面的组成单元。
	    |--Button:按钮
	    |--Label:标签
	    |--Checkbox:检查框
	    |--TextComponent:文本组件
		|--TextArea:文本区
		|--TextField:文本字段
	    |--Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其它组件或容器进来。
		|--Window:窗口
		|--Panel:镶嵌板
		    |--Frame:框架
		    |--Dialog:对话
			|--FileDialog:文件对话框

    布局管理:
	FlowLayout(流式布局管理器):从左到右的顺序排列。Panel默认的布局管理器。
	BorderLayout(边界布局管理器):东,南,西,北,中。Frame默认的布局管理器。
	GridLayout(网格布局管理器):规则的矩阵
	GridBagLayout(网格包布局管理器):非规则的矩阵
	CardLayout(卡片布局管理器):选项卡

    建立一个窗体:
	* 窗体中可以存放各种组件,所以窗体是容器Container。创建时我们使用的是它的子类
	* Container的两个常用子类:Window和Panel。Window是窗体,Panel是面板用来布局,不可见,不能单独存在。
	* Window也有两个常用子类,Frame和Dialog。Frame是我们常用的带有标题和边框的顶层窗口,Dialog是对话框。
	* 所有AWT包中的类都会运行在AWT线程上
	简单的窗体创建过程:
	    Frame  f = new Frame(“my window”);	//建立框架
	    f.setLayout(new FlowLayout());	//设置布局
	    f.setSize(500,400);			//设置窗体大小
	    f.setLocation(300,200);		//设置窗体出现在屏幕的位置
	    f.setVisible(true);			//设置成可见

    事件监听机制组成:
	* 事件源:发生事件的组件。
	* 事件对象(Event):用户对组件的一个操作。
	* 监听器(封装了事件源对应的动作的对象):处理某个事件,需要在发生事件的组件上添加监听器,
						  也就是java.awt.event包中XxxListener接口的子类。
	* 事件处理:监听器中的方法。监听器被添加在组件上之后,组件上发生了
					  对应事件就会执行指定方法。
	
    事件监听机制流程:
	外部动作将有监听器所监听的动作作于事件源上,事件源(组件)产生事件对象,事件对象传给监听器
	    监听引发事件的动作(事件处理方式),将监听器注册到事件源

    常用事件分类:
        窗体事件WindowEvent:窗体打开、关闭、正在关闭、激活、最小化等。
	鼠标事件MouseEvent:鼠标按下、抬起、进入、移出等。
	键盘事件KeyEvent:键盘按下、抬起等。
	动作事件ActionEvent:在某一组件上发生了定义好的动作,如按钮上鼠标点击或按空格,菜单上鼠标点击或按回车。

    如何处理事件:
	* 确定事件源(容器或组件)
	* 通过事件源对象的addXXXListener()方法将监听器注册到该事件源上,在监听器中定义事件处理方法
	* 该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象,一般用匿名内部类表示。
	* 在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
	* 事件触发后会把事件打包成对象传递给该变量,自动执行事件处理方法
	(其中包括事件源对象。通过getSource()或者,getComponent()获取。)

  Adapter(适配器):
	通常Listener接口中都是有多个抽象方法的,而我们使用的时候有可能不会全部需要,如果定义子类实现接口那么
	就必须重写所有方法,比较麻烦。Java中为我们提供了一些抽象的实现类XxxAdapter,它实现了XxxListener,内部
	对接口的所有抽象方法进行了空的实现,我们在定义监听器时只要继承XxxAdapter就相当于实现了XxxListener,需
	要哪个方法就重写哪个,不需要的方法不用再重写。

    菜单:
	MenuComponent:菜单组件
	    |--MenuBar:菜单条
	    |--MenuItem:子菜单、菜单项
		|--Menu:菜单
	先创建菜单条,再创建菜单,每一个菜单中建立菜单项。
	也可以菜单添加到菜单中,作为子菜单。
	通过setMenuBar()方法,将菜单添加到Frame中。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值