使用哪一种:Java Swing还是GTK+;用于GNOME桌面应用程序?
我正在考虑开发一个带有图形用户界面的GNOME桌面应用程序。我知道GTK+是首选,尤其是在为GNOME环境开发时。最终用户也认为GTK+是他们使用的应用程序的首选。然而,我正在考虑未来的改进:如果我的应用程序需要一个端口来连接其他环境或操作系统,如KDE、Mac或Windows,该怎么办?最好的方法是:JavaSwing(因为它是独立于平台的)还是GTK+?答案取决于您实际需要什么 GTK库是Gnome环境中固有的:如果您想为Gnome开发应用程序思想,请使用GTK 如果您对给Gnome用户一种本地的感觉不太感兴趣,那么使用您想要的任何东西(GTK、Swing、Qt、wx…)使用哪一种:Java Swing还是GTK+;用于GNOME桌面应用程序?,java,linux,swing,gtk,Java,Linux,Swing,Gtk,我正在考虑开发一个带有图形用户界面的GNOME桌面应用程序。我知道GTK+是首选,尤其是在为GNOME环境开发时。最终用户也认为GTK+是他们使用的应用程序的首选。然而,我正在考虑未来的改进:如果我的应用程序需要一个端口来连接其他环境或操作系统,如KDE、Mac或Windows,该怎么办?最好的方法是:JavaSwing(因为它是独立于平台的)还是GTK+?答案取决于您实际需要什么 GTK库是Gnome环境中固有的:如果您想为Gnome开发应用程序思想,请使用GTK 如果您对给Gnome用户一种
顺便说一下,如果你想听听我的个人意见,我更喜欢GTK。我个人不喜欢Swing,尤其是当它试图模仿GTK的外观和感觉时。使用GTK+。如果您真的想移植它,它也可以用于Windows,并且与gnome的集成会更好。我的用户通常更喜欢Swing,但GTK应用程序在跨平台维护上只稍微困难一点 GTK不会在Mac OS X上本机运行 GTK及其依赖项可以使用和流行的开源工具(如)构建,并在应用程序包中包含所需的库 它需要安装一个X服务器 “与Mac OS X完全集成。” 附录:正如@ptomato所指出的,提供石英和X11两种变体
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI( this );
On*nix变体,应产生摆动中的GTKPLAF。在苹果(1)上,它可能会产生一个名称中带有“Aqua”的主题,而在Windows(1)上,它将类似于“Windows”
1) 我怀疑Windows或Apple用户是否希望看到“GTK外观”应用程序。在他们的桌面上 据我所知,GTK不是在Mac OS X上本机运行的:它需要安装一个X服务器。@peoro:这是不正确的;我已经在另一个答案中详细说明了。请注意,如果您使用本机GTK编写代码,当您在Windows上运行应用程序时,您的应用程序将看起来像本机Windows应用程序。+1供参考,Mac OS X上的默认L&F是
com.apple.laf.AquaLookAndFeel
。您也可以使用MacPorts在OS X上安装一个完全不需要X服务器的GTK版本。@ptomato:太好了!你能提供一个链接吗?除了在macports.org上查找gtk2端口外,实际上不需要任何链接-你会看到“no_x11”和“quartz”变体被列出(它们是彼此的同义词)。只需键入sudo port install gtk2+quartz
即可安装该变体。@ptomto:D'oh!我完全忘了检查变体;链接添加。我的首要任务是gnome环境,所以我会选择gtk+选项