1、GUIjava
一、GUI的概念编程
GUI(Graphical User Interface)即图形用户界面,它可以使应用程序看上去更加友好。多线程
二、AWT、Swing以及SWT并发
AWT(Abstract Windows Toolkit)是Java语言中最原始的GUI工具包,相关API位于java.awt包中。AWT是一个很是有限的GUI工具包,好比树、表格等都不支持;框架
然而AWT却没法实现。AWT运行时,每一个组件都要依赖于当前平台的GUI对等体(peer)控件,所以,AWT GUI 的外观和行为就会依赖当前平台。函数
三、java.awt包工具
java.awt包是Java内置的包,属于Java基础类库(JFC)的一部分,其中包括如下内容;布局
便于用户输入的一组丰富的界面组件;学习
将组件放置在适当位置的几种布局管理器;线程
事件处理模型;
图形和图像工具等等。
四、经常使用的基本Swing组件
在Swing编程中,有一些常常要使用到的组件,其中包括:
JFrame(窗体,框架)、JPanel(面板,容器)、JButton(按钮)、JLabel(标签)、JTextField(文本框)、JTextArea(文本域)。
五、建立GUI的步骤总结
分析GUI中须要使用的组件;
将GUI分红几个部分,每一个部分使用JPanel布局。每一个JPanel能够根据状况使用不一样的布局管理器;
将多个JPanel布局到一个JFrame上。
2、Swing事件监听快速入门
一、事件处理
对于采用了图形用户界面的程序来讲,事件控制是很是重要的;
到目前为止,咱们编写的图形用户界面程序都仅仅只是完成了界面,而没有任何实际的功能,要实现相应的功能,必须进行事件处理;
用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输入一个字符、点击鼠标等等;
当前咱们要关注的并非“事件是如何产生的”,而是讨论当发生事件后,咱们应当“如何处理之”。
二、事件处理模型
Java中,事件处理的基本思路以下:
一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;
一个事件源必须注册监听器以便监听器能够接受关于一个特定事件的通知。
三、事件源与事件
当在一个图形用户界面点击鼠标或者按下键盘时,都是针对于具体组件而发生的动做,如:使用鼠标点击某个按钮;按下键盘向文本框输入内容等等;
咱们把动做所操纵的对象称为事件源,请注意:事件源必定是指某个组件;
当针对于事件源发生动做时,就会产生一个事件。
四、监听器与监听器接口
针对每一类型的事件,都有与之相对应的监听器,用于监听事件的发生;
在Java中,监听器由一系列接口来提供;
实际上,事件监听器就是实现了事件监听接口的类,监听器不断监听事件源的动做,当事件源产生一个事件后,监听器接收到事件源的通知,就调用特定的方法,以执行指定的动做;
特定的事件监听器只对特定的事件感兴趣。
五、事件类型
实际上,事件是区分类型的,如:操做鼠标时会产生鼠标事件,使用键盘输入字符时会产生键盘事件,窗体打开或关闭时会产生窗体事件等等;
对于不一样类型的事件会有不一样类型的监听器与之对应;
java.awt.event包中包含了一系列监听器接口,分别用来处理不一样类型的事件。
六、事件对象
Java中的全部事件都被封装在事件对象中,全部事件对象皆派生自EventObject类;
对于不一样的事件类型会有不一样的事件对象,它们都以相似于XxxEvent的方式命名,如:ActionEvent、MouseEvent等等;
事件对象中包含有事件发生时的相关信息(即事件触发时产生的一些数据),会被事件底层机制传递到事件处理函数中;
实际上事件对象就是事件处理函数中被传递进来的参数,若是在处理事件的过程当中须要使用到相关的某些数据,能够从事件对象中获取。
3、内部类
一、定义.
内部类是Java独有的一种语法结构,即在一个类的内部定义另外一个类,如:
public class ExteriorClass {
private class InteriorClass {
}
}
此时,内部类InteriorClass就成为外部类ExteriorClass中的成员,访问权限遵循类成员的访问权限机制,能够是public、protected、缺省和private;
内部类能够很方便地访问外部类中的其它成员;
内部类主要为了解决类成员间相互访问的问题。
4、匿名内部类
匿名类其实就是一种比较特殊的内部类,只是这个类没有名字而已;
匿名类与内部类类似,可以访问到外部类中的全部成员;
不少状况下(特别是在事件处理中),匿名类通常被定义在外部类的某个方法中,因此也被称为局部内部类,对于局部内部类,它还能够访问到这个方法的参数;
在适当的状况下,使用匿名类来实现事件处理,会使代码更简洁,更灵活;
只能使用一次。
5、GUI中的并发任务
在GUI中,经常可能须要处理并发任务,例如,聊天室应该能够支持传递文件的功能,而传递文件的同时能够继续聊天;
修改 清空聊天记录 事件处理,使其死循环,模拟须要很长时间,可见清理过程当中,不能作其余操做;
使用多线程编程,将解决该问题,后续学习。