感觉用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的一些特点