Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用哪一种:Java Swing还是GTK+;用于GNOME桌面应用程序?_Java_Linux_Swing_Gtk - Fatal编程技术网

使用哪一种:Java Swing还是GTK+;用于GNOME桌面应用程序?

使用哪一种: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用户一种

我正在考虑开发一个带有图形用户界面的GNOME桌面应用程序。我知道GTK+是首选,尤其是在为GNOME环境开发时。最终用户也认为GTK+是他们使用的应用程序的首选。然而,我正在考虑未来的改进:如果我的应用程序需要一个端口来连接其他环境或操作系统,如KDE、Mac或Windows,该怎么办?最好的方法是:JavaSwing(因为它是独立于平台的)还是GTK+?

答案取决于您实际需要什么

GTK库是Gnome环境中固有的:如果您想为Gnome开发应用程序思想,请使用GTK

如果您对给Gnome用户一种本地的感觉不太感兴趣,那么使用您想要的任何东西(GTK、Swing、Qt、wx…)



顺便说一下,如果你想听听我的个人意见,我更喜欢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+选项