成都网站建设设计

将想法与焦点和您一起共享

Swing框架中设计模式会出现什么问题呢

Swing框架中设计模式会出现什么问题呢,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网页空间、营销软件、网站建设、大余网站维护、网站推广。

Swing控件是改善为了AWT控件而发展出来的轻量级GUI控件,采用的是Composite设计模式,然而,由于没有清楚的分隔组件(Component)和容器(Container)的边界,就造成了Swing的几乎每个单独的组件都是一个容器,能够添加其他容器或者组件。下面创新互联小编来讲解下Swing框架中设计模式会出现什么问题?

Swing框架中设计模式会出现什么问题

1.和人的直觉非常不一致:Swing的GUI上的各种组件如果添加的面板过多的话,就造成各个组件的层次很深,处理类似focus管理这样的问题就很麻烦,坐标的转换也很复杂,由于父子关系过多,您不看代码只看GUI,凭直觉难以区分组件的父子关系。

2.使用上的困扰:Swing组件本身由于不能分清是组件还是容器,很多容器方法比如setEnabled就没有效果,需要写代码遍历所有子组件,调用所有的子组件相同的方法,而类似设置透明的方法也有这个问题,如果设置某个容器透明,也需要设置所有的子组件的透明属性,组件和容器的很多方法没有很好的定义,这对了解Swing结构的人不是问题,但是对于熟悉别的GUI类库的人就产生了很大的困惑,因为不少容器上的方法调用后是没有效果的。

Swing框架中设计模式会出现什么问题

3.布局上的困难:使用Swing开发界面的程序员会发现,即使Swing提供了这么多布局管理器,然而您想通过这些布局管理器做出很专业的界面却非常难,因为布局管理器非常依赖父容器和子组件的各种状态,尽管Swing最新的版本提供了类似组件和容器间隔的方法,然而还没有被大部分布局管理器采用,其实并不是布局管理器不够强大的问题,事实上,很多专业的界面需要从组件级别做出良好的定义,例如getPreferredSize,getMinimumSize,getMaximumSize方法,这些方法的不确定性很强,布局管理器不能过度依赖这些方法;另外,不少Swing组件会根据容器的大小进行绘制,这也造成了很多不确定性,很多人喜欢使用NullLayout,可能就是这个原因,客户需要的是一个稳定的,可预知的界面,如果使用了布局管理器,会发现界面在不同的系统下展示的不同。

而对比不少GUI类库,您会发现他们的定义更为严格,比方JavaMELCDUI类库,组件和容器是严格分开的,组件的添加是严格限制的,布局也是定义的非常严格的,没有布局管理器,类似滚动条这些支持都在底层进行了隐藏,真正减少了GUI开发者的负担。

总得来说,对Composite设计模式应该慎用,如果一定要用,一定要良好的定义组件(Component)和容器(Container)的边界,不然很多功能会陷入没有意义的父子遍历例程,增加了复杂性,却没有带来很多好处。

关于Swing框架中设计模式会出现什么问题呢问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


标题名称:Swing框架中设计模式会出现什么问题呢
文章路径:http://chengdu.cdxwcx.cn/article/jeedje.html