将Swing中的桌面应用程序升级到JAVAFX的挑战

时间:2014-07-02 04:08:12

标签: javafx

我有一个用java Swing开发的电信桌面应用程序(EMS)。它是过去10年来开发和维护的旧应用程序。现在我们计划使用javaFX技术更新GUI页面,以获得更好,更干净的外观。感觉。

我经历了各种堆栈溢出讨论,说明了javaFX和Swing之间的区别。有人帮我理解升级到javaFX GUI的挑战,考虑到以下限制: -

- 需要在Unix,Solaris,HPUX,MAC和Windows 7/8 OS

中部署应用程序

- 一些第三方罐子也与JRE一起使用

- 当前支持的JRE是java 7

- 可能有计划支持android / apple / blackberry手持设备

- 我们没有使用数据库进行持久化,而是使用实时数据进行显示。

1 个答案:

答案 0 :(得分:4)

这个答案是基于问题的详细限制,而不是对Swing到JavaFX端口的一般性评论。这个答案的一部分将不可避免地过时,也许相当快。

鉴于您的限制,您无法将应用程序升级到JavaFX。

对于JavaFX,Solaris和HPUX不是supported deployment platforms,并且不太可能发生变化。

让JavaFX在Solaris或HPUX上运行的唯一方法是使用不受支持的配置,例如在Solaris或HPUX上运行VirtualBox VM作为主机操作系统,并在VM中运行支持的操作系统,例如RedHat 6或Oracle Linux 6,然后在支持的操作系统中运行JavaFX应用程序 - 这可能会也可能不会。

此外,我认为JavaFX不太可能很快被移植到黑莓上运行。其他移动平台有ports of JavaFX,它们适用于简单的应用程序。我还没有尝试过,并且想到JavaFX应用程序在此阶段针对此类端口进行了一些实验。此类端口不在Oracle JVM和JRE上执行,因此如果您使用外部库,则必须与端口运行时兼容(例如Android开发工具包,RoboVM库等)。

如果您将部分应用程序移植到JavaFX,我建议至少运行Java 8而不是Java 7.修复了许多错误,并在JavaFX for Java 8中实现了许多新功能。特别是对于Swing- > JavaFX端口,JavaFX和Swing的集成功能在Java 8中使用SwingNode进行了改进。为帮助确保目标系统安装了正确的运行时,您可以使用适当的JRE将应用程序打包为self-contained application

当然,如果你可以稍微放松一下约束,那就有many positive points for JavaFX