一、Frame类和Panel类的关系
Frame类类似于房间窗户的窗框,Panel类类似于窗框中镶嵌的玻璃,
没有窗框,用户就没有办法安装玻璃,所以Panel类不能单独存在。
再把其他组件如按钮、标签比作不同的修饰物,
如果没有玻璃作为载体,这些修饰物也没法装点窗户,
所以Panel类主要是用来容纳其他组件的。
二、事件处理机制
假设某人有一家银行,为了保证安全,他在银行玻璃上安装报警器,并且将报警器向警察局注册。当劫匪打碎玻璃时,就好引发报警器报警。
过程分析如下:
- 银行开业前,应该在玻璃上安装报警器———>连接到警察局———>备案注册监听
- 事件源(如玻璃)———>产生事件(如将玻璃打碎事件)
- 监听器(报警器)监听到事件后通知警察局———>警察局进行抓捕劫匪的处理
此过程用事件处理机制描述如下:
- 事件源:类似于玻璃
- 监视器:报警器,通过添加事件报警器联系起来
- 事件触发:当敲破玻璃时,触发事件报警器,将监听到的事件传给事件相应的处理方法(如警察局如何逮捕劫匪)来处理。一般事件的处理内容都由程序员编写。
参考资料
- Java基础与案例开发详解