我大部分的桌面应用程序开发都是使用Swing,我很想听听其他人关于使用JavaFX和/或Adobe Flex来构建桌面应用程序的想法。你是否已经成功地使用这些工具来构建桌面应用程序?还是暂时仍然坚持使用Swing,并使用工具来帮助提高Swing开发的效率?
我大部分的桌面应用程序开发都是使用Swing,我很想听听其他人关于使用JavaFX和/或Adobe Flex来构建桌面应用程序的想法。你是否已经成功地使用这些工具来构建桌面应用程序?还是暂时仍然坚持使用Swing,并使用工具来帮助提高Swing开发的效率?
我认为JavaFX可以看作是Swing的一种扩展,它使用声明式编程语言JavaFX Script来开发Java图形用户界面。与Adobe Flex或Microsoft Silverlight使用XML语法不同,JavaFX Script代码看起来就像一个JSON脚本。
JavaFX Script可以与Java进行接口,因此可以轻松调用Swing组件。它真正是GUI API的新一代,就像Swing对AWT一样:美观的图形组件,新的管理布局的简单方法,构建动态界面的很棒功能:绑定、计时器(用于构建动画)等。在这里查看:http://www.javafx.com/samples/和教程,并看看您可以多快地构建出一种Google Picasa应用程序...该API甚至包含一些工具,可以轻松使用Web服务:您可以找到许多连接到一些公共Web服务(如天气预报工具)的JavaFX GUI构建示例。
而且最好的部分...是部署部分。您可以将应用程序嵌入html页面中,就像Applet一样,用户可以将应用程序拖放到桌面上,在需要时使用它(而无需返回其浏览器)!
实际上,我认为JavaFX虽然处于早期阶段(v1.2),但是它真的是一个很好的工具,并代表了Java迈向下一代应用程序:富互联网应用程序(RIA)的第一步。
Java Swing是一项成熟的桌面开发技术,您可以在网上找到大量信息和示例程序。然而,您可能需要考虑Adobe AIR。AIR基本上是一个运行时环境,让您在桌面上运行Flex应用程序,并让它们访问本地资源,如文件系统。我已经使用Java Swing开发了10年的应用程序,但我惊讶于使用Flex / Adobe AIR时我的生产力有多高。Flex的一个好处是您可以声明性地创建GUI,就像使用HTML声明Web页面的布局一样。这是一种更简洁的指定GUI的方式,比起需要编写大量Java Swing代码来完成同样的工作,更快捷、更容易维护。我不建议使用JavaFX,因为它太晚进入市场并且没有真正得到主流开发人员的认可。
你应该尝试它们全部并看哪一个最符合你的要求。如果你想知道如何使用Flex以及如何操作,请查看Tour de Flex。
Flex的一些优点是它非常成熟(已经超过5年了),是Adobe公司的一个重要投资领域。在Adobe AIR Marketplace中也可以找到许多使用Flex构建的AIR应用程序示例。
使用Substance L&F,Swing可以看起来很好。
然而,如果你是独自开发(而不是与团队合作),尝试JavaFX可能是一个不错的选择。
我觉得我没有足够的信息来回答这个问题。有许多应用程序在其中AIR方法是更好的选择,其他应用程序使用其他技术更好。我主要是AS3 / Flex开发人员,但我知道有许多情况下Java平台之一是更好的选择。现在,Flex不再是Adobe产品,而是Apache产品,它将由用户创建路线图来改进产品,或者完全淘汰它。