我所做的大部分桌面应用程序开发都在Swing中,我很想听听人们对使用JavaFX和/或Adobe Flex构建桌面应用程序的想法。您是否已成功构建桌面应用程序?或者您现在是否会坚持使用Swing并使用工具来帮助提高Swing开发效率?
答案 0 :(得分:19)
如果您正在制作桌面应用,我会坚持使用Swing。 JavaFX / Flex / Silverlight更适合RIA丰富的互联网应用。虽然我认为从长远来看它们都不会是一个选择 - 在我看来,像HTML5 / CSS3 / Ajax一样赢得了胜利,但那是一个非常主观的领域。但对于桌面应用程序 - 我是Swing的忠实粉丝(Java Web Start也是一种非常被低估的技术)
答案 1 :(得分:10)
我想说JavaFX可以看作是Swing的一种扩展,它采用一种新的方式,通过使用声明性编程语言来开发Java GUI:JavaFX Script。与使用XML语法的Adobe Flex或Microsoft Silverlight不同,JavaFX Script代码看起来与JSON脚本完全相同。
JavaFX Script可以与Java连接,因此可以轻松调用Swing组件。它确实是新一代的GUI API,比如Swing用于AWT:漂亮的图形组件,管理布局的简单新方法,构建动态界面的非常好的功能:绑定,计时器(构建动画)等。看看这里: http://www.javafx.com/samples/以及教程,看看你有多快建立一种Google Picasa应用程序...... API甚至包含一些可以轻松使用Web服务的工具:你可以找到大量连接到JavaFX的GUI内置示例一些公共网络服务(如天气预报工具)。
最好的......是部署部分。您可以将应用程序嵌入到html页面中,例如applet,用户可以将应用程序拖放到她/他的桌面上,以便在需要时使用它(无需返回其浏览器)!
实际上,我认为JavaFX虽然处于早期阶段(v1.2),但它是一个非常好的工具,代表了Java迈向下一代应用程序的第一步:富互联网应用程序(RIA)。
答案 2 :(得分:2)
Java Swing是一种成熟且成熟的桌面开发技术。您将能够在线找到大量信息并提供大量示例程序。但是,您可以考虑使用Adobe AIR。 AIR基本上是一个运行时,允许您在桌面上运行Flex应用程序,并允许他们访问本地资源,如文件系统。我已经编写了Java Swing应用程序10年了,我很惊讶我使用Flex / Adobe AIR的效率更高。 Flex的一个不错的方面是,您可以明确地创建GUI,就像您使用HTML来声明网页布局一样。这是一种更简洁的方式来指定一个GUI,并且比你需要做同样事情的Java Swing代码更快更容易维护。我不推荐使用JavaFX,因为派对太晚了,并没有真正与主流开发者合作。
答案 3 :(得分:1)
您应该尝试所有这些,看看哪一个最适合您的要求。如果您想了解使用Flex可以做些什么以及如何操作,请查看Tour de Flex。
Flex的一些优势在于它已经成熟(现在已超过5年)并且是Adobe的一个重要投资领域。您还可以在Adobe AIR Marketplace中找到许多使用Flex构建的AIR应用程序示例。
答案 4 :(得分:1)
使用Substance L& F,Swing看起来很好。
但是,如果您是单独开发(而不是团队开发),尝试使用JavaFX可能是一个好主意。
答案 5 :(得分:1)
答案 6 :(得分:0)
我已经为桌面应用程序评估了这些,最后决定使用JavaFx。这具有非常好的媒体library和硬件加速图形和媒体功能。使用Jdk 7更新6以后包含JavaFx完全集成,不需要单独安装。 Java swing是非常好的技术并将继续,但我看到JavaFx在某种程度上是GUI和Internet应用的未来。对我来说最大的好处是可以使用native packaging
将JavaFx应用程序转换为exe文件还可以尝试使用scenebuilder拖放组件设计器
答案 7 :(得分:0)
我觉得我没有足够的信息来回答这个问题。有许多应用程序,其中AIR方法是更好的选择,其他应用程序更好地使用其他技术。我主要是AS3 / Flex开发人员,但我知道有很多实例,其中一个Java平台是更好的选择。既然Flex不再是Adobe产品而是Apache产品,它将改进产品,因为用户将创建路线图,或完全将其彻底销毁。