java - 在 Java 应用程序中使用 MVC

标签 java swing model-view-controller javafx-2

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

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

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

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

最佳答案

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

Swing 是一个成熟、完善且有文档记录的 API。它已经运行了 12 年多,并且有许多第 3 方支持的 API。

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

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

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

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

这是一个前沿问题,而不是经过验证的问题 - 恕我直言。

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

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

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

...恕我直言

关于java - 在 Java 应用程序中使用 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006279/

相关文章:

java - 使用maven配置HSQLDB

java - 除以负分数的问题

用于加载文档并标记文本部分的 Java 库

php - 注册表类的目的是什么?

java - 在 Spring REST MVC 项目中检查资源存在的正确位置是什么?

ruby-on-rails - Ruby on Rails : The same check in multiple actions in a controller

java - 备份/恢复共享首选项android

java - 将位掩码应用于 BufferedImage

Java 9 hdpi 显示支持 - 多分辨率图像 - Windows 中的命名约定和加载

java - JTextField 限制输入字符数,只接受数字