首页 文章

针对桌面应用程序的Swing vs JavaFx [关闭]

提问于
浏览
172

我有一个非常大的程序,目前正在使用SWT . 该程序可以在Windows,Mac和Linux上运行,它是一个包含许多元素的大型桌面应用程序 . 现在SWT有点老了我想切换到Swing或JavaFX . 我想听听你对三件事的看法 .

我主要担心的是桌面GUI应用程序会有什么好处? (我在网上看了很多人都认为JavaFX和Swing一样好,但除了简单的意见火焰战争之外我没有看到很多有效的论据) . 它必须适用于Windows,Mac和一些流行的Linux发行版 .

  • 什么更清洁,更容易维护?

  • 从头开始构建什么会更快?

我在我的应用程序中使用MVC方法,如果有任何帮助的话 .

6 回答

  • 5

    什么更清洁,更容易维护?

    所有条件都相同,可能是JavaFX - API在各个组件之间更加一致 . 但是,这更多地取决于代码的编写方式而不是用于编写代码的库 .

    从头开始构建什么会更快?

    高度依赖于你正在建设的东西 . Swing有更多的组件(第三方以及内置)并且并非所有组件都已经进入新的JavaFX平台,所以如果你需要一些东西,可能会有一定数量的重新发明轮子有点习惯 . 另一方面,如果你想做转换/动画/视频内容,那么这在FX中更容易 .

    要记住的另一件事是(也许)外观和感觉 . 如果您绝对必须具有默认的系统外观,那么JavaFX(目前)无法提供此功能 . 对我来说不是必须的(我更喜欢默认的FX外观)但我知道有些政策要求限制系统风格 .

    就我个人而言,我认为JavaFX是"up and coming"的UI库,但尚未完全存在(但超过可用),而Swing是未来几年的边缘传统UI库,因此很有可能FX会超车它在某些时候 . )

  • 14

    正如Oracle所说,JavaFX是他们基于Java的富客户端战略的下一步 . 因此,这是我建议你的情况:

    维护什么会更容易和更清洁

    • JavaFX在Swing上引入了一些改进,例如,用FXML标记UI的可能性,以及CSS的主题 . 它具有编写模块化,清晰和可维护代码的巨大潜力 .

    从头开始构建什么会更快

    • 这在很大程度上取决于您的技能和使用的工具 .

    • 对于swing,各种IDE提供了快速开发的工具 . 我个人发现的最好的是NetBeans中的GUI构建器 .

    • JavaFX也得到了各种IDE的支持,虽然不像Swing目前支持的那样成熟 . 但是,它对FXML和CSS中的标记的支持使得JavaFX上的GUI开发变得直观 .

    MVC模式支持

    • JavaFX对MVC模式非常友好,您可以将您的工作完全分离为:表示(FXML,CSS),模型(Java,域对象)和逻辑(Java) .

    • 恕我直言,Swing的MVC支持不是't very appealing. The flow you' ll看到各种组件缺乏一致性 .

    有关详细信息,请在此处查看Oracle关于JavaFX的这些常见问题解答 .

  • 0

    没有人提到它,但是由于缺少“jfxrt.jar”支持,JavaFX不能在Oracle(例如Solaris)的某些被认为是“服务器”的架构上编译或运行 . 坚持使用SWT,直至另行通知 .

  • 78

    我不认为这个问题有任何正确的答案,但我的建议是坚持使用SWT,除非你遇到需要如此大规模改革的严重限制 .

    此外,SWT实际上比Swing更新,更积极地维护 . (它是originally developed作为使用本机组件的Swing的替代品) .

  • 140

    我会四处寻找能够满足您需求的(第三方?)组件 . 我必须为议程视图创建自定义Swing组件,您可以在其中预订多个资源,以及类似Excel的网格,它可以很好地与键盘导航等等 . 我有一段非常糟糕的时间让他们工作得很好,因为每当我遇到问题时,我都需要深入研究Swing的许多错综复杂的东西 . 鼠标和焦点行为以及许多其他事情可能很难做到,特别是对于休闲的Swing用户 . 我希望JavaFX能够更加面向未来并且开箱即用 .

  • 0

    在具有集成视频的旧笔记本上,Swing应用程序的启动和工作速度比JavaFX应用程序快得多 . 至于开发,我建议切换到Scala - 类似的Scala Swing应用程序包含的代码比Java少2..3倍 . 至于Swing vs SWT:Netbeans GUI比Eclipse快得多......

相关问题