1 Swing与MVC
Swing组件设计使用了著名的MVC模型-视图-控制器体系结构。为了了解MVC体系结构与Swing组件的关系,我们来看一下如何设计一个表示按钮的组件,因为按钮的各个部分可以与MVC体系结构的3个部分对应起来。
按钮在任意给定时刻,可处于启用和无效两种状态之一。很显然,按钮只有处于启用状态时才会响应点击。记录按钮状态是很有用的,视图需要根据按钮的状态进行不同的渲染。按钮的所有状态就是MVC体系结构的模型部分。模型还包括按钮的其他属性。
你现在了解到按钮在模型中保存其状态,视图是按钮的图形表示,它使用模型来确定如何绘制按钮。按钮的另外一个重要功能是,它的状态可以改变-当你用鼠标点击它,或者当它处于焦点时按空格或回车键,即可激活按钮。显然,必须有某些东西来监控鼠标和键盘以及按钮得到或失去焦点的情况,以便注意到必要的状态改变。组件负责接收和响应输入的部分就是控制器。