模型(Model)包含每个组件的数据状态,不同类型的组件有不同的模型。什么是组件的数据状态呢?例如滚动条组件(JScrollBar)的数据状态就包含滚动条的当前位置、最大值、最小值以及滚动条的宽度等。这些数据信息就是滚动条组件的模型。
视图(View)是组件在屏幕上的表现形式。由于Java是跨平台的语言,同一个组件在不同的平台上的显示是不相同的,在不同的外观风格下也是不相同的。为了让Java的GUI程序也应该做到“Write once,run anywhere”,Swing组件依据组件的模型和当前所处的显示环境进行组件绘制。
控制器(Controller)控制组件如何与事件进行交互。事件的形式有多种,例如鼠标单击、获得或者失去焦点、键盘点击等。当这些事件发生时,控制器根据事件的类型,决定组件如何响应 。