【问题标题】:Which one to use: Java Swing or GTK+ for GNOME desktop application?使用哪一个:用于 GNOME 桌面应用程序的 Java Swing 或 GTK+?
【发布时间】:2015-04-28 14:12:29
【问题描述】:

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

【问题讨论】:

    标签: java linux swing gtk


    【解决方案1】:

    使用 GTK+。如果您确实想移植它,它也可用于 Windows,并且与 gnome 集成得更好。

    【讨论】:

    • 据我所知 GTK 不能在 Mac OS X 上本地运行:它需要安装 X 服务器。
    • @peoro:这是不正确的;我已经在另一个答案中详细说明了。
    【解决方案2】:
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    SwingUtilities.updateComponentTreeUI( this );
    

    在 *nix 变体上,应该在 Swing 中生成 GTK PLAF。在 Apple(1) 上,它可能会生成一个名称中带有“Aqua”的主题,而在 Windows(1) 上,它可能会生成一个类似于“Windows”的主题。

    1) 我怀疑 Windows 或 Apple 用户希望看到“GTK 外观”应用程序。在他们的桌面上。 ;)

    【讨论】:

    • 请注意,如果您在本机 GTK 中编写代码,您的应用在 Windows 上运行时将看起来像本机 Windows 应用。
    • +1 作为参考,Mac OS X 上的默认 L&F 是 com.apple.laf.AquaLookAndFeel
    【解决方案3】:

    我的用户通常更喜欢 Swing,但 GTK 应用程序在跨平台维护方面只是稍微困难一些。

    GTK 不能在 Mac OS X 上原生运行;

    GTK 及其依赖项可以使用MacPorts 构建,GimpInkscape 等流行的开源工具在应用程序包中包含所需的库。

    需要安装 X 服务器。

    X11 for Mac 是“与 Mac OS X 完全集成”。

    附录:正如@ptomato 所说,portfile 提供 Quartz 和 X11 两种变体。

    【讨论】:

    • 您也可以使用 MacPorts 在完全不需要 X 服务器的 OS X 上安装 GTK 版本。
    • @ptomato:太好了!能给个链接吗?
    • 除了在 macports.org 上查找 gtk2 端口之外,实际上没有任何必要的链接 - 您会看到列出了“no_x11”和“quartz”变体(它们是彼此的同义词)。只需输入 sudo port install gtk2 +quartz 即可安装该变体。
    • @ptomato:噢!我完全忘记检查变体;已添加链接。
    • 我的首要任务是 gnome 环境,所以我会选择 gtk+
    【解决方案4】:

    答案取决于你真正想要什么。

    GTK 库是 Gnome 环境中的原生库:如果您想开发适用于 Gnome 的应用程序,请使用 GTK。

    如果您对为 Gnome 用户提供原生感觉不太感兴趣,那么可以使用任何您想要的东西(GTK、Swing、Qt、wx ...)。


    顺便说一句,如果你想听听我的个人意见,我更喜欢 GTK。我个人不喜欢 Swing,尤其是当它试图模仿 GTK 的外观和感觉时。

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 2011-01-19
      • 2012-12-12
      • 1970-01-01
      • 2011-11-21
      • 2021-07-12
      • 2012-05-22
      • 1970-01-01
      相关资源
      最近更新 更多