• Java桌面GUI库


    感觉用Java开发web app是非常普遍的,工具啊,库啊都非常丰富,那么如果用Java开发一个普通的桌面应用,有哪些GUI库可供选择呢?

    一、AWT

    Abstract Window Toolkit, 是Java中引入最早的GUI库,它是对native system的一个封装,真正的窗口渲染还是由操作系统功能提供的,这使得用awt写的UI,其在不同的系统上显示是不一样的 - 都是按照目标系统的风格显示的。

    AWT提供了两个层面的Java API:一个是对native system的窗口,事件等基本机制的封装; 二是提供了如button,checkbox等现成的控件。

    AWT是JFC[1]的一部分 

    二、Swing

    AWT和Swing都是JavaSE的组成部分,但Swing提供了更为丰富的功能与控件,如 tabbed panel, scroll panes, trees, tables和lists等

    而且因为Swing使用Java2D实现,所有代码都是java,无需依赖于native system,因此,其look&feel可以在不同系统建保持一致 - 但你同时又可以调整让其以native system的风格显示,可以说更加灵活。

    Swing采用了MVC架构。

    三、 SWT

    Standard Widget Toolkit, Eclipse出品,和AWT一样,SWT同样也是使用JNI访问native system api实现,使用SWT的程序是跨平台的,但是SWT的实现本身,却需要为每个平台都实现一份。

    SWT是集合了Swing和AWT的一些特点:它和AWT一样调用了native函数,运行效率高且保持了native的look&feel,但同时它有提供了Swing一样强大的功能和丰富的控件。

    虽然SWT本身不支持MVC架构,但Eclipse提供了另一个基于SWT的高层次的库:JFace,JFace不仅支持MVC架构,并且提供高层次的控件与UI机制, 如Viewer,Wizard, Action等

    四、QT jambi

    这是一个对著名C++ GUI库QT的java 封装,如果熟悉QT的话,用这个应该会比较贴心。

    但Qt Jambi在10年被诺基亚放弃,而Qt又于近日被诺基亚放弃(12年五、六月份左右),玩去昂考opensource的力量在支撑,其前景有待考虑。

    五、JavaFx

    JavaFx是一种更高层次的GUI framework,一般可以用来构建internet、desktop、mobile、game console等UI,其竞争者有AJAX,Flash,Silverlight。

    这个可能不是做一个简单的Java Desktop Application的好选择。

    GUI Designer

    开发GUI程序,而没有一个UI designer的话会是非常低效的,MyEclipse提供了一个针对Swing的Swing GUI Designer 10.6 [2],但是目前网络上多数指向它的链接都无法访问,据说其MyEclipse已经停止开发它了,所以感觉价值不是很高。但是google又一次大度的给出了Java GUI Design方面的神器:WindowsBuilder,  支持Swing和SWT,相当强大。

    所以,用java开发一个desktop的程序时,我会选择swing(功能强大,且lightweight,无须转调native call), 配上WindowsBuilder.


    [1] JFC = Java Fundation Classes (效仿MFC?) 其包括AWT, Swing和Java2D

    [2] 又叫Matisse4MyEclipse, 其原型是Netbean中的UI designer Matisse

  • 相关阅读:
    SSO单点登录的实现原理
    Svn服务器的安装和配置
    Linux平台上搭建apache+tomcat负载均衡集群
    js验证textarea里面是否有换行符
    js 正则验证url
    markdown
    php解决中文乱码
    html文本框和按钮这些点击时不显示边框的光晕
    js去掉字符串前后以及中间的空格
    用ssh-key-gen 在本地主机上创建公钥和密钥
  • 原文地址:https://www.cnblogs.com/baiyanhuang/p/2623868.html
Copyright © 2020-2023  润新知