JAVA重量级组件和轻量级组件 文摘

来源:互联网 发布:淘宝去哪里看店铺直播 编辑:程序博客网 时间:2024/04/30 05:50
Most of the issues related to mixing AWT and Swing components are related to the mixing of so-called heavyweight and lightweight components. A heavyweight component is one that is associated with its own native screen resource (commonly known as a peer). A lightweight component is one that "borrows" the screen resource of an ancestor (which means it has no native resource of its own -- so it's "lighter").

Ref : http://java.sun.com/products/jfc/tsc/articles/mixing/
-----------------------------------------------

There are 5 heavyweight components: JFrame, JDialog, JApplet, JInternalFrame, and JWindow in swing, all others are derived from JComponent class and lightweight components. Whenever possible, don't use awt components.
---------------------------------------------

重量级组件:对应运行平台必须存在一个对应的组件.
轻量级组件:在一个虚拟的画布上画出来的组件(所以swing较慢),所有轻量级组件"最终"要放到重量级组件(jframe,jdialog)中.由于是画出来所以能做到各种平台上一致的表现.同样,如果混合重量级组件和轻量级组件容易引起重叠上的冲突.
----------------------------------------------
1。首先轻量级与重量级是一个相对的概念,主要是对应用框架使用方便性和所提供服务特性等方面做比较的。

      比方说EJB就是一个重量级的框架,因为它对所编写的代码有限制,同时它也提供能分布式等复杂的 功能。相比之下,Spring就是轻量级框架,因为它需要的只是普通的Java对象,它所提供的也只是足够中小应用使用的功能。

    但是,随着Spring的发展,它也所具有的功能也越来越强大,而EJB的使用也在变得简单,所以这随着技术的发展,这个概率也需要更新。毕竟它的出现是为了和使用复杂的框架做区别,那么当当家都在不断吸收对方长处的时候这个界线就没有那么明显了。

    2。 框架是为应用服务的,选择什么样的框架要根据你的迎来定。最主要的一点是现在的框架很多都在和其它框架的集成上做了很大的文章,混合使用技术上没有什么问 题。比如你要用Spring,同时你也可以用EJB,关键是使用的时候你的应用采用什么养的策略来综合这些方面。当然,这就是你自己应用体系结构的问题 了。

    3。如果框架间出现冲突(这里不讨论具体应用的冲突,而是集成技术上的),那就得考虑修改集成策略。如果你自己解决不了只有 等某一个框架或者所有框架升级之后再做了。当然,评价一个框架好坏与否的标准里面,集成性是很重要的。如果一个框架集成性不强,最好就不要考虑使用。毕竟 有些问题是要深入框架内部才能解决的,这也是大多数程序员无法办到的。

---------------------------------------------
在轻量级和重量级组件混用的情况下,禁用轻 量级的JPopupMenu弹出窗口。public void setLightWeightPopupEnabled(boolean aFlag)。设置lightWeightPopupEnabled属性的值,默认情况下该值为 true。 默认情况下,当外观显示弹出菜单时,它选择使用轻量级(纯Java的)弹出菜单。轻量级弹出窗口比重量级(本机同位体)窗口效果更好,但是轻量级和重量级 组件在GUI中不能很好地混合使用。如果应用程序混合使用轻量级和重量级组件,则应该禁用轻量级弹出窗口。某些外观可能始终使用重量级弹出菜单,不管此属 性的值如何。
 
原创粉丝点击