swing灵活和重用的艺术 renderer/editor
来自:卡卡西
说到GUI类库的重用有一个很著名的模式:Composite模式。对,一个现代面向对象GUI类库基本上都有这个模式的实现,当然也包括swing.不过早一点如MFC就没有完整的实现,现在来看如果一个GUI类库连基本的Composite模式都没有实现基本上感觉是出土的文物啦! 但是我们来看即便有了Composite模式,但Composite模式通常是构建静态组合,如果要动态的替换一个复合组件内部的子元素如何办呢?如此一来这个组件就只能定义自己的布局形式,而不能定死在这个布局形式内的元素。 其实从用户角度来说一个GUI元素通常就是两种情况要么就是表现,要么就是处于和用户交互状态,这是它们的形态通常不一样。所以组件不仅仅要只定义自己的布局形式,还要给于外部机会来配置当自己的子元素处于这两种状态时相应的UI组件是什么! swing通过renderer/editor达到了这种灵活性。如swing中JTable,JList,JTree等组件都只是定义了自己的布局形式。并且都可以配置renderer/editor,这样你的renderer/editor实现就接管了组件里面元素的表现形式和交互形态。理论上你可以用任何JComponent作为组件里面元素的表现形式和交互形态。其灵活性和重用性达到了一个巅峰! 以前还聊过一个JTable的例子! http://www.douban.com/group/topic/1112689/
你的回复
回复请先 登录 , 或 注册相关内容推荐
- 学术资讯|Ailleurs #9:论笨拙 Clumsy 从Spelunky到柏格森
- wiki: A Portrait of the Artist as a Young Man (Joyce)
- 乐队My Chemical Romance科普&奇闻趣事(4.1新增部分采访
- 科普安利|给刚入滚圈的新人指路,科普一些英国摇滚乐队(本...
- 分享课程|艺术史 Sotheby's Institute "Art History: Key Co...
- 趣味选题|流行音乐与国家认同感的建构——以英伦摇滚为例
- 2009年德国评出英文字体TOP100❤苦苦收集❤终于齐全❤...
- 音乐分享|各类歌剧实况分享
- Strawberry Whiplash - Stuck in the Never Ending Now (2015)
最新讨论 ( 更多 )
- 【推荐】笔吧十级大佬在线推荐笔记本(三贴) (小杰将)
- 求助|暗影精灵7用了四个月电池健康度只有80%😫 (HANNIVI)
- 液晶显示器有光栅怎么回事? (momo)
- 这个怎么连(超级老的电脑) (🌬)
- 求助!如何关闭电脑相机的镜像 (茄子🍆一夏)