哪一个可以使用:用于GNOME桌面应用程序的Java Swing或GTK +?

我正在考虑用graphics用户界面开发一个GNOME桌面应用程序。 我知道GTK +是首选,特别是在开发GNOME环境时。 最终用户也认为GTK +是他们使用的应用程序的首选。 然而,我正在考虑未来的改进:如果我的应用程序需要一个端口到另一个环境或像KDE或Mac或Windows的操作系统呢? 哪个是最好的方法:Java Swing(因为它是独立于平台的)还是GTK +?

我的用户普遍更喜欢Swing,但是GTK应用程序只是稍微难以维护跨平台。

GTK不能在Mac OS X上本地运行;

GTK及其依赖可以使用MacPorts来构建,而流行的开源工具(如Gimp和Inkscape)在应用程序包中包含了所需的库。

它需要安装一个X服务器。

适用于Mac的X11 “与Mac OS X完全集成”。

附录:作为@ptomato笔记, portfile同时提供了Quartz和X11变体。

使用GTK +。 它也适用于Windows,如果你想要移植它,并且与gnome集成得更好。

 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI( this ); 

在* nix变体上,应该在Swing中生成GTK PLAF。 在苹果(1)上,它可能会产生一个名为“Aqua”的主题,而在Windows(1)中它将会像“Windows”一样。

1)我怀疑Windows或苹果用户想看“GTK外观”的应用程序。 在他们的桌面上。 ;)

答案取决于你真正想要的。

GTK库在Gnome环境中是本地的:如果你想为Gnome开发一个应用程序思想,使用GTK。

如果你不是那么有兴趣给Gnome用户一个本地的感觉,那就用你想要的任何东西(GTK,Swing,Qt,wx …)。


顺便说一下,如果你想要我的个人意见,我更喜欢GTK。 我个人不喜欢Swing,特别是当它试图模仿GTK的外观和感觉。