zoukankan      html  css  js  c++  java
  • Java Swing & Awt

    <Java组建>
    模拟组件    :   Swing;
    原生组件    :   SWT;
    
    <AWT>
        遵循最大公约数原则,即AWT只拥有所有平台上都存在的组件的公有集合。
        所以你在AWT中无法获取如表或树等高级组件,因为它们在某些平台上不支持。
        AWT的组件特征同样遵循这一原则。
        它只提供平台上公有的特征。
        例如AWT按钮不能附着图片,因为在Motif平台上,按钮是不支持图片的。
        由于它低劣的组件集和特征,AWT无法吸引开发者。它是Sun不推荐使用的,只是为了确保向下兼容和支持Swing。
    
    <SWT>
        SWT最初的目标之一是为了提供比AWT更为丰富的组件集。
        它遵循最小公倍数原则以提供一个各个平台上包含的组件的并集。
        思路是如果一个组件在某个平台上包含,那么SWT就会包装它并用java代码和JNI来调用它。
        如果一个组件在某一平台上不存在,它就会用继承并绘制Composite的方式来模拟组件。
        一个SWT Composite类似于AWT的Canvas。以这种方式,SWT提供了较AWT更为丰富的组件集。
        值得指出的是SWT的JNI封装不同于AWT,它的模拟也不同于Swing。
    
    
    <Swing>
        Swing是三者中最强大和灵活的。在组件类型上,它遵循最大公约数原则。
        由于Swing可以控制自身GUI系统的全部并有很好的可扩展和灵活性,它几乎可以创建所有你想象得到的组件。
        唯一的限制是它的AWT容器。
        在Swing中你还不能跨平台地实现真正的透明化和不规则矩形窗口,因为Swing依赖于AWT顶层容器例如Applet, Window, Frame and Dialog等。除此之外,Swing几乎实现了所有平台上的标准组件。
        在组件特征上,Swing遵循最小公倍数原则。
        它拥有所有平台上可提供的组件特征。不仅如此,你还可以继承已有的Swing组件并添加新的特性。
       上面比较主要是在API级别上的。让我们将比较的焦点转移到实现细节上。
       Swing和SWT/AWT的区别是Swing是纯Java实现,而SWT和AWT是Java和JNI的混合。
       当然,它们的目标都是相同的,提供一个跨平台的APIs。
       然而为了达到这一点,SWT和AWT不得不牺牲一些组件和特性以提供一个通用的APIs。
  • 相关阅读:
    关于oc中自动引用计数 小结
    xcode6中导航栏 控制view用程序编写
    oc中深拷贝与浅拷贝
    关于c语言 指针课堂随笔
    oc中设置手动引用和自动引用图解
    利用xcode6做出牛的一逼的计算器
    利用xcode6 使用代码写出英格兰国旗
    oc中字典的应用详解
    c和oc排序程序与见解
    关于Xcode6beta2 新学者使用 工程的建立
  • 原文地址:https://www.cnblogs.com/xuejianhui/p/2773649.html
Copyright © 2011-2022 走看看