Is JavaFX complete replacement of Swing?

强颜欢笑 提交于 2020-08-01 09:32:05

问题


I had a Java Desktop Application in which graphical user interface had designed in swing. After we came to know that JavaFX replacing Swing We have replaced graphical user interface with JavaFX.

"6. Is JavaFX replacing Swing as the new client UI library for Java SE? Yes. However, Swing will remain part of the Java SE specification for the foreseeable future, and is included in the JRE. On one hand, Swing is widely used in existing Java desktop applications, but relies on an old architecture, which requires a certain level of expertise and specialization. On the other hand, JavaFX features a set of modern UI controls that can be skinned using standard CSS techniques. While we recommend developers to leverage JavaFX APIs as much as possible when building new applications, it is possible to use Swing and JavaFX within the same application, allowing developers to extend existing Swing applications."

Now we heard that Oracle donate the JavaFX toolkit to the open source community and OpenJDK Community had agreed to take it on.

The JavaFX toolkit evolved from the F3 project at Sun. Initial releases were based around the JavaFX scripting language, however, in 2011 the toolkit was completely rewritten in Java and released by Oracle as JavaFX 2.0. In October 2011 Oracle announced that it would donate the JavaFX toolkit to the open source community and by November 2011 the OpenJDK Community had agreed to take it on.

I do not think so JavaFX is stable. It has no quick support. Document are not enough explanatory. It does not release internal memory when stage is closed. My application is multithreaded application and most of time taken by my application in updating status of each individual thread. Self contained copy of JRE in native bundle does not reliable, we have to replaced it with JRE folder that resides into JDK.

It's really frustrating and I wonder, if JavaFX is fit to develop the Java Desktop application.


回答1:


Is JavaFX complete replacement of Swing?

I think that not,

  • most of components are halfsized in compare with Swing (price for development ???),

  • implementations in JavaFX8 (accesible with Java8) has one important point Swing JComponents could be accesible from JavaFX containers and JavaFX Components will be accesible in Swing JContainers (implemented in newer JavaFX2.2),

  • then JavaFX will be accesible for development of DeskTop applications

  • still question is if will be possible to add JavaFX TextArea together with Swing JTextArea in one JPanel or vice versa (Panel from xxx.scene.xxx)

  • more (the best infos, roadmap, development...) on FX Experience (notice occasionally is down :-)




回答2:


According to Oracle, JavaFX is a replacement for Swing:

http://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html#6, question 6, says:

Is JavaFX replacing Swing as the new client UI library for Java SE?

Yes. However, Swing will remain part of the Java SE specification for the foreseeable future, and therefore included in the JRE. While we recommend developers to leverage JavaFX APIs as much as possible when building new applications, it is possible to extend a Swing application with JavaFX, allowing for a smoother transition.




回答3:


Update as of 2020

JavaFX technology seems to be going quite well in the ensuing years after this Question was originally posted. Java has been release on its 6-month train schedule, and JavaFX releases have arrived to match shortly after each one.

Oracle has completed the process of making JavaFX open-source, known as OpenJFX. The codebase is now housed as a sub-project on the OpenJDK project. Leadership has been assigned to the Gluon company.

The popularity and community seem to be growing. The competitors have fallen away, such as Microsoft Silverlight and Adobe Flash both having died.

Oracle continues to support Swing, but only in maintenance-mode. JavaFX, in contrast, continues to grow and improve.

Oracle sells support for JavaFX, as do other vendors such as Azul Systems.

Some vendors supplying Java implementations bundle the JavaFX/OpenJFX libraries with their JVMs. These include Azul Systems with their ZuluFX product, and BellSoft with their LibericaFX product.

Though cutting-edge presently, there is work being done to build a native apps for iOS and other platforms using OpenJFX with ahead-of-time compilation using GraalVM.

See:

  • Java Client Roadmap Update by Oracle, 2020-05
  • JavaFX FAQ by Oracle
  • OpenJFX
  • JavaFX page on Wikipedia
  • OpenJDK wiki page for JavaFX



来源:https://stackoverflow.com/questions/15362783/is-javafx-complete-replacement-of-swing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!