Java SWT ( Standard Widget Toolkit ) 是一个开源的 GUI 编程框架,属于 eclipse 项目无心插柳柳成荫的项目。

SWT 官网:http://www.eclipse.org/swt/

之前有不少人说 Java 的界面做的丑,窗体还是 MFC 和 .NET 的天下。我不得不承认 Java 中 AWT 和 Swing 确实十分丑。最近没事写个计算器的小 SWT Demo 给 Java 的 GUI 平反。借助 Java 跨平台的特性,“一次编写处处运行”再一次得到很好的体现。

Win7 自带计算器

[image align=”center” width=”one_half” lightbox=”true”]https://6mg7fq.dm2301.livefilestore.com/y2psd5tZq99V1o-l6DUM8yIpAVM4lYFNgshlJAo54V_QkLvFcgTSW7kRpJv5Ce283x2KAfPDQ7Njnx5_bpvA_jkEL2XIIlRK96Nk7_JnYc6dBE/origin-win7.jpg[/image]

SWT on Win7

我用的是第三方的 Shine 2.0 的主题,可以看到一点点效果。用Win7原生主题显示效果差不多。

[image align=”center” width=”one_half” lightbox=”true”]https://6mgmcw.dm1.livefilestore.com/y2pPbTAlGH-9CZmupRdHqda_M34H4NR7XH1Ko7dfqLfFy9sXUn6j5ccIesNNO0wHPcNXIQGFai0zdjKFGRIeL8aa_nPWgY8_9w2WZu5AjSzJ0M/swt-win7.jpg[/image]

SWT on XP

首先是没开主题的:

[image align=”center” width=”one_half” lightbox=”true”]https://6min5w.dm1.livefilestore.com/y2poopAc5guOsipKvcpKsnM3d5Blh8i9gZcfq-QaTutwEuUBVDC3jdBImhijSzywtDwsifgy2r_W6ngsVPN4tuKazFA39rXYLVcZti8WLIppUs/swt-xp.jpg[/image]

使用原生主题

[image align=”center” width=”one_half” lightbox=”true”]https://6mhcxa.dm1.livefilestore.com/y2pwDWrWclEXS0zRStIp77-ydWMMzh7-z69k6Hznk-Pfi8otJBZt325xFwq4IJqVjvWkgpEz0s0fxnBL7fZLISOr4hW9ZBZsUEkkguJRty2TGs/swt-xptheme.jpg[/image]

使用第三方 Win7 主题

[image align=”center” width=”one_half” lightbox=”true”]https://6mjd0a.dm2301.livefilestore.com/y2ptY1LVGZf8ECiPc-ufGJzJWSVpgiKs4Dz2QIXAjZwZXmuK_uMM21-DBUYgyYlzrSy58baKlRFj0OlrSDzS8M4MoQEXzT-oLkAccA_VHdG7KM/swt-xpwin7theme.jpg[/image]

SWT on Mac OS

按钮的大小有些问题,其他的显示还不错。

[image align=”center” width=”one_half” lightbox=”true”]https://6mjwiq.dm2301.livefilestore.com/y2pmaM9OinovMLYvv6MV4BpR0YQpYS0BBAr6RHuxgfWNEqq_4VTMcyVDhMpBbtaXPmKqqcdW5VlFJwj5mINdEM54nwWQen5sZ3BHb07B42x-BM/swt-mac.jpg[/image]

SWT on Linux KDE

测试时只用了 KDE 的,gnome 等其他桌面没来及看。KDE 桌面下的显示是最漂亮的。(可能上面 Mac OS 调好按钮大小的bug也会好看一些)。

[image align=”center” width=”one_half” lightbox=”true”]https://6mhxqg.dm2301.livefilestore.com/y2p_N_S7RTZOkHev_obQi_df3oa9p7bn1Vmiu3LWOoIxXP61RN1k49nKNUAqq_VHCiOYHOAhOXyB6aC7F7aCbTYGLhtEQbt8QQlgPcMK9ovWvA/swt-kde.jpg[/image]

综上可见 SWT 的最好之处在于跨平台了(主要还是 Java 的功劳),同时也免去了当年 AWT 和 Swing 丑界面的尴尬。

留下一个答复

Please enter your comment!
Please enter your name here