2012-12-22 41 views
1

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

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

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

我会非常感谢任何反馈意见。谢谢!

+0

也许你也应该看看SWT:http://www.eclipse.org/swt/ – micha

+0

,但由于其开放性讨论风格写得很好的问题,它可能更适合http://programmers.stackexchange.com/。我已经投票在StackOverflow上关闭它。 –

+0

这个问题对于任何单个答案来说都太大了。任何UI工具包都可以满足您的需求,尽管JavaFX绑定似乎适合您的应用程序的“实时数据”感受。如果你精通Qt,你为什么不这样做呢? –

回答

3

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

Swing是一个成熟的,完善的和有记录的API。它已经运营了12年,并且拥有许多第三方支持API。

JavaFX是一个相对较新的技术,而它的使用越来越多,它仍然是关于事物相对不成熟,喜欢它的文件(特别是第三方故障排除和教程)。

使用JavaFX 2中,你现在得到了一棵树,表的实现,不再局限于它脚本语言。根据我的理解,JavaFX的渲染引擎是最新的,然后Swing的(Swing依赖于AWT和它的渲染引擎,它可以在某些边缘情况下引发问题 - 这是对Swing的批评,而现在(依赖AWT))。

多年来Swing已被用于大量高质量,高要求的应用,虽然我确信JavaFX可能可以应对这一挑战,但规模项目的数量并不是很多众多。

这是一个流血的问题,而不是证明 - 恕我直言。

就个人而言,我会回落到挥杆,但很多是来自经验和提供支持的知识。但是,如果我有机会,我可能会对JavaFX和Swing中的解决方案进行原型设计感兴趣,以便不仅比较技术,还会比较开发过程。

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

有些人可能会认为,JavFX是Swing的更换和摇摆已经过时了。这不是真的。虽然这是事实,但Swing在过去几年没有看到任何重大更新,它是可行的和核心的图书馆。

......恕我直言

+0

感谢您的有用评论。我想我会遵循您的建议,并尝试在两个工具包中创建我的应用程序原型。另外,我同意我的问题是主观的,但同时我怀疑我的应用程序的实现*的复杂性取决于我决定使用的工具包。例如,在Qt中,使用模型到 来处理树和表视图可能非常费力,更不用说将它与使用图形视图框架的小部件连接起来(相当于开发我的应用程序的其余部分,我认为)。 – egor