轻量级通知
下面Swing中的模型使用轻量级通知,它们是基于 ChangeListener、ChangeEvent接口的:
Model
Listener
Event
BoundedRangeModel
ChangeListener
ChangeEvent
ButtonModel
ChangeListener
ChangeEvent
SingleSelectionModel
ChangeListener
ChangeEvent
&n ...
构建应用程序应该以数据为中心,而不是以用户界面为中心,这是一个良好的编程习惯。为支持这种编程范式,Swing为每种带有逻辑数据或值的组件定义了独立的模型接口,这种分割使程序可以选择向Swing组件中嵌入自己的模型实现。
下面表格列出Swing中组件及其模型的映射关系:
组件
Model接口
Model类型
JButton
ButtonModel
GUI状态
JToggleButton
ButtonModel
GUI状态/应用 ...
Swing事件与事件处理器模型
Component在Swing模型中是事件触发源。前一篇文章在描述Swing的事件处理模型时就已经提到了这个事件处理过程。简单来说,Swing组件在侦听到原生事件并处理后,往往产生新的逻辑事件。逻辑事件是某些组件所特有的、具有特定语义的事件,比如JButton按下时产生ActionEvent、JComboBox一项被选中时产生ItemEvent,等等。和原生事件不同,它们并不被派发到系统事件队列中,而是由组件直接触发。事件处理器作为组件的观察者添加到组件上并侦听触 ...
Swing的事件处理过程为:事件调度线程(Event Dispatch Thread)从事件队列(EventQueue)中获取底层系统捕获的原生事件,如鼠标、键盘、焦点、PAINT事件等。接着调用该事件源组件的dispachEvent。该方法过滤出特殊事件后,调用processEvent进行处理。processEvent方法根据事件类型调用注册在这个组件上的相应事件处理器函数。事件处理器函数根据这些事件的特征,判断出用户的期望行为,然后根据期望行为改变组件的状态,然后根据需要刷新组件外观,触发带有 ...
昨晚回去后还是觉得Component对象本身说的太简单,想来想去,觉得内容实在是太多,有必要补充两个续文说明Component的其它概念。今天介绍Swing组件paint方法的处理流程,这个流程能使我们理解许多Swing机制。明天续文讲述Swing事件处理器、双缓冲和布局管理器等原理。
=====================================
Swing组件的paint方法是内部接口方法,一 ...
昨天晚上写完Swing的模型和渲染器之后,觉得对Swing的体系结构还是没有说清楚。Swing的基础体系结构中的四大基本对象Component、 Model、UI Delegate以及Renderer都值得详细解释。Swing的树状组件结构(虽然这是用户界面工具通有的特征)也值得详细解释,因为这是完成某些复杂Swing组件,尤其像JTable、JTree、JList和JComboBox这种复杂组件中编辑功能得关键。此外,Swing / AWT的事件模型如Event Dispatching和Prop ...
本文承接Swing/AWT/SWT比较一文,概要叙述Swing的体系结构,解释了Swing架构关键概念:模型与渲染器,解释如何使用渲染对象扩展该体系架构来支持大数据量的组件。后面的文章还会简要概述SWT的体系结构,为Swing/AWT和SWT的比较做一铺垫。 ===================================== Java基础类(JFC)Swing工具提供了使用Java平台创建高度可交互性图形用户界面的类。Swing是高度灵活的,但是也因此相当复杂,虽然新手能够使用Swing创建基本的图形用户界面(GUI),但是真要创建一个复杂、专业的GUI界面,你必须理解Swing的体系 ...
- 浏览: 583 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Swing模型与渲染器
是转载吧,原文好像是一个在Sun工作过的人写的,Swing相当厉害...在sin ...
-- by jvincent -
Swing模型与渲染器
转载请注明
-- by WorldHello -
Swing模型与渲染器
go on。。。。。
-- by icefire -
Swing模型与渲染器
关心swing的人越来越少了,我来顶你。 很喜欢swing,期待你的下一篇文章
-- by eccojap






评论排行榜