1

我需要编写一个跨平台的 GUI 应用程序来处理(在多个线程中)和可视化相当大量的数据。理想情况下,应用程序应该相对较快并且看起来不错。

该应用程序的界面将包括一个表格小部件、一个树小部件和一个自定义绘图小部件。用户将能够从这些小部件中的任何一个修改数据,并且更改应立即反映在其他小部件中。

当然,我打算使用 MVC。但是,我通常使用 C++/Qt 进行所有 GUI 编程,并且对 Java 的了解非常有限。因此,我非常感谢有关如何用 Java 组织这样的应用程序的任何建议。特别是,我应该使用 Swing 还是 JavaFX?您会为这项工作选择哪些小部件?您能否推荐任何涵盖 Java 平台这些方面的书籍/在线教程?

我将不胜感激任何反馈。谢谢!

4

1 回答 1

3

这是一个非常主观的问题。

Swing 是一个成熟的、完善的和文档化的 API。它已经运行了超过 12 年,并拥有许多支持第三方的 API。

JavaFX 是一种相对较新的技术,虽然它的使用正在增长,但它在文档(尤其是第 3 方故障排除和教程)等方面仍然相对不成熟。

使用 JavaFX 2,您现在可以获得树和表实现,并且不再局限于它的脚本语言。

据我了解,JavaFX 的渲染引擎比 Swing 的更新得多(Swing 依赖于 AWT 及其渲染引擎,这在某些极端情况下“可能”导致问题 - 这一直是对 Swing 一段时间的批评(依赖 AWT))。

多年来,Swing 已在大量大型、高质量、高要求的应用程序中使用,虽然我确信 JavaFX 可能能够应对挑战,但这种规模的项目数量并不多。

这是一个流血边缘的问题,而不是经过验证的问题 - 恕我直言。

就个人而言,我会退回到 Swing,但其中很多来自对可用支持的经验和知识。但是,如果有机会,我可能会对在 JavaFX 和 Swing 中制作解决方案的原型感兴趣,不仅可以比较技术,还可以比较开发过程。

首次发布时,JavaFX 的目标是在与 Flash 相同的空间内竞争。有人可能会说,这是 Sun 试图替换/更新 Applet API。我不认为这是 JavaFX 现在唯一的方向,JavaFX 2 已经看到了一些显着的增强(包括包含树和表视图,并且减少了对它的脚本语言的依赖)。

有些人可能会建议 JavFX 是 Swing 的替代品,而 Swing 已被弃用。这不是真的。虽然确实如此,但 Swing 在过去几年中没有看到任何重大更新,但它是可行的核心库。

...恕我直言

于 2012-12-22T20:41:02.593 回答