JavaFX是一个用于构建富Internet应用程序的Java库。 使用此库编写的应用程序可以跨多个平台一致地运行。 使用JavaFX开发的应用程序可以在各种设备上运行,例如台式计算机,移动电话,电视,平板电脑等。

JavaFX

要使用Java编程语言开发GUI应用程序,程序依赖于库以及Advanced Windowing Toolkit和Swing。 在JavaFX出现之后,这些Java程序员现在可以使用丰富的内容有效地开发GUI应用程序。

1. 为什么需要JavaFX?

为了开发具有丰富功能的客户端应用程序,程序员可以使用各种库来添加诸如媒体,UI控件,Web,2D和3D等功能。JavaFX在单个库中包含所有这些功能。 除此之外,开发人员还可以访问Java库的现有功能,例如:Swing。

JavaFX提供了丰富的图形和媒体。API和它通过硬件加速图形利用现代图形处理单元。 因此,JavaFX提供了开发人员结合动画和UI控件的接口。

可以将JavaFX与基于JVM的技术(如Java,Groovy和JRuby)结合使用。 如果开发人员选择JavaFX,则无需学习其他技术,因为任何上述技术的知识都希望能够使用JavaFX开发RIA。

2. JavaFX的功能

以下是JavaFX的一些重要功能 -

  • 使用Java编写 - JavaFX是用Java编写的,可用于JVM,包括Java,Groovy和JRuby。 这些JavaFX应用程序与平台无关。

  • 使用FXML - JavaFX使用称为FXML的语言,它是一种类似于声明性标记语言的HTML。 此语言的唯一目的是定义用户界面。

  • Scene Builder - JavaFX提供名为Scene Builder的应用程序。 在将此应用程序作为Eclipse和NetBeans集成到IDE中时,用户可以访问拖放设计界面,该界面用于开发FXML应用程序(就像Swing Drag&Drop和DreamWeaver应用程序一样)。

  • Swing互操作性 - 在JavaFX应用程序中,可以使用Swing Node类嵌入Swing内容。 同样,可以使用嵌入式Web内容和丰富的图形媒体等JavaFX功能更新现有的Swing应用程序。

  • 内置UI控件 - JavaFX库提供UI控件,使用它可以开发全功能的应用程序。

  • 像CSS一样的样式 - JavaFX提供了类似样式的CSS。通过使用它,可以通过简单的CSS知识改进应用程序的设计。

  • Canvas和Printing API - JavaFX提供了Canvas,一种即时渲染API模式。在javafx.scene.canvas包中,它包含一组canvas类,使用它们我们可以直接绘制到JavaFX场景的一个区域。因此,JavaFX在javafx.print包中提供了用于打印目的的类。

  • 丰富的API集 - JavaFX库提供了丰富的API来开发GUI应用程序,2D和3D图形等。这组API还包括Java平台的功能。因此,使用此API,可以访问Java语言的功能,如泛型,注释,多线程和Lambda表达式。传统的Java集合库已创建并包含在其中。使用这些,用户可以观察数据模型中的变化。

  • 集成图形库 - JavaFX提供2D和3D图形类。

  • 图形管道 - JavaFX支持基于硬件加速图形管道(称为Prism)的图形。 与图形卡或GPU一起使用时,它可提供流畅的图形。 如果系统不支持图形卡,则棱镜默认为软件渲染堆栈。

3. JavaFX的历史

JavaFX最初是由Chris Oliver开发的,当时他在一家名为Lake Beyond Technology Corporation的公司工作,该公司后来在2005年被Sun Microsystems收购。

以下几点为我们提供了有关JavaFX项目的更多信息 -

  • 最初,该项目被命名为F3(Forms Follows Functions),并提供用于开发GUI应用程序的接口。
  • Sun Microsystems于2005年6月收购了See Beyond公司,并将其作为JavaFX改编为F3项目。
  • 在2007年,JavaFX在Java One上正式宣布,Java One是一年一度的万维网会议。
  • 在2008年,可以将JavaFX集成到NetBeans。 同年,JavaFX 1.0 Java标准开发套件发布。
  • 在2009年,甲骨文公司收购了Sun Microsystems,并在同一年发布了下一版JavaFX(1.2)。
  • 在2010年,JavaFX 1.3问世,2011年JavaFX 2.0发布。
  • 最新版本JavaFX8,于2014年3月18日作为Java的一个组成部分发布。

教程目录