AWT的基础知识:
GUI,graphical user interface,图形用户界面。
JDK中提供了AWT(早期,不全面)和Swing(改进后)两个包,用于GUI程序设计的开发。
GUI组件可以分为两大类:基本组件和容器,分别是java.awt.Component和java.awt.Container的直接或间接子类。
程序的GUI部分由AWT线程管理。
时间处理机制:
三个重要概念:事件(用户操作),事件源(发生事件的组件),事件处理器(处理事件的成员方法)
事件分类:按产生事件的物理操作和组件的表现效果:MouseEvent WindowEvent ActionEvent
按时间性质:低级事件,监听器当中有多个成员方法。
语义事件(高级事件),监听器当中有多个成员方法。
事件监听器:一个事件监听器对象负责处理一类事件。
一类事件的每一种情况分别由事件监听器对象中的一个方法来具体处理。
在事件源和事件监听器对象中进行约定的接口类,称为事件监听器接口。
处理发生在某个GUI组件上的XxxEvent事件的某种情况,事件处理的通用编写流程:
编写一个实现了XxxListener接口的事件监听器类;
XxxListener类中用于处理该事件情况的方法中,编写处理代码;
调用组件的addXxxListener方法,将类XxxListener创建的实例对象注册到GUI组件上。
事件处理的多重应用:
一个组件上的一个动作可以产生多种不同类型的事件。
一个事件监听器对象可以注册到多个事件源上。
在一个事件源上也可以注册对同一类事件进行处理的多个事件监听器对象。
修改组件的默认事件处理方式:
只有一个组件上注册了某种事件监听器对象后,组件才会产生相应的事件对象。
修改组件的默认事件处理方式,就必须覆盖重写processEvent方法或processXxxEvent方法。
调用enableEvents(long eventsToEnable)方法,可以在即时没有注册事件监听器的情况下,组件也能够对某些类型的事件进行相应和产生相应的事件对象。
组件重绘的处理:
曝光现象,一个窗口在最小化,缩放,移动等操作后,系统只重绘了窗口而没有重绘窗口中的组件。
窗口中的内容写在paint方法中,在对窗口操作后调用paint方法就可以实现重绘。
paint方法归AWT线程管理,用户不能调用paint方法,而使用repaint方法(刷新)。
图像显示:
使用graphics.drawimage(image img, int x, int y,imageobserve observe)方法显示图像。drawimage方法是个异步方法,即使image还没有加载完成,drawimage方法就会返回。
使用component.getoolkit.getimage(string path)语句获得image的实例对象。
双缓冲技术:
component.creatimage方法创建内存image对象。
在image对象上进行绘制的结果就成为一副图像。
在image对象上执行与组件表面相同的绘制,image对象中的图像时组件表面内容的复制,当组件重画时,只需将内存中的image对象在组件上画出。
dialog与filedialog类:
dialog类用于产生对话框。分模态和非模态两种,前者必须关闭当前对话框才能对其父对话框进行操作。
filedialog类用于产生读取和存储文件的对话框。
panel与scrollpanel类:
panel类是一个容器类,用于产生一种特殊的空白面板,可以容纳其他的组件,但不能独立存在。
scrollpanel类用于产生滚动窗口,在一个小容器窗口中显示较大的子部件,不能单独使用,需添加在其他容器中。