知识大全 Swing框架中设计模式的误用
Posted 知
篇首语:常识是本能,有足够的常识便是天才。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Swing框架中设计模式的误用相关的知识,希望对你有一定的参考价值。
Swing框架中设计模式的误用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Swing控件是改善为了AWT控件而发展出来的轻量级GUI控件 采用的是Composite设计模式 然而 由于没有清楚的分隔组件(Component)和容器(Container)的边界 就造成了Swing的几乎每个单独的组件都是一个容器 能够添加其他容器或者组件 看似强大的功能实际上造成了大量的问题
和人的直觉非常不一致 Swing的GUI上的各种组件如果添加的面板过多的话 就造成各个组件的层次很深 处理类似focus管理这样的问题就很麻烦 坐标的转换也很复杂 由于父子关系过多 您不看代码只看GUI 凭直觉难以区分组件的父子关系
使用上的困扰 Swing组件本身由于不能分清是组件还是容器 很多容器方法比如setEnabled就没有效果 需要写代码遍历所有子组件 调用所有的子组件相同的方法 而类似设置透明的方法也有这个问题 如果设置某个容器透明 也需要设置所有的子组件的透明属性 组件和容器的很多方法没有很好的定义 这对了解Swing结构的人不是问题 但是对于熟悉别的GUI类库的人就产生了很大的困惑 因为不少容器上的方法调用后是没有效果的
布局上的困难 使用Swing开发界面的程序员会发现 即使Swing提供了这么多布局管理器 然而您想通过这些布局管理器做出很专业的界面却非常难 因为布局管理器非常依赖父容器和子组件的各种状态 尽管Swing最新的版本提供了类似组件和容器间隔的方法 然而还没有被大部分布局管理器采用 其实并不是布局管理器不够强大的问题 事实上 很多专业的界面需要从组件级别做出良好的定义 例如getPreferredSize getMinimumSize getMaximumSize方法 这些方法的不确定性很强 布局管理器不能过度依赖这些方法 另外 不少Swing组件会根据容器的大小进行绘制 这也造成了很多不确定性 很多人喜欢使用NullLayout 可能就是这个原因 客户需要的是一个稳定的 可预知的界面 如果使用了布局管理器 会发现界面在不同的系统下展示的不同
而对比不少GUI类库 您会发现他们的定义更为严格 比方JavaME LCDUI类库 组件和容器是严格分开的 组件的添加是严格限制的 布局也是定义的非常严格的 没有布局管理器 类似滚动条这些支持都在底层进行了隐藏 真正减少了GUI开发者的负担
cha138/Article/program/Java/hx/201311/26380相关参考
使用Swing进行动态界面设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Swing工具包提
Swing全屏幕模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 也许用到的机会很少但JDK还
java开发:Swing是MVC设计的典范 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 不管你
JSF框架中使用的设计模式介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设计模式可以帮助用
.NET框架中的Factory模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Factory
.NET框架中的Factory模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Factory
知识大全 双缓冲原理在awt和swing中实现消除闪烁的方法
对于双缓冲的分析是在坦克大战游戏的设计时开始的由于当时忙于游戏的整体设计所以对这一个问题没有进行详细的研究现在就这个问题来谈谈自己的一些看法分析前提出几个问题&nb
Spring框架的设计理念与设计模式分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Spri
设计模式:设计自己的MVC框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!源代码放在的邮箱的收件
.NET应用框架设计实践和概述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我研究领域驱动设计