【.com快译】1.概述JavaFX是一个Java库,可用于构建RichInternetApplications(RIA)。它使开发人员能够通过提供一组图形和媒体包来设计、创建、测试、调试和部署富客户端应用程序,并使它们能够在不同平台上一致地运行。通过提供丰富的图形用户界面,JavaFX可以实现专用于动画、2D和3D几何、图表、特效、颜色渐变、图形控件和多媒体(包括:音频、视频和图像)的简单操作结构和API。2、JavaFX的主要特点跨平台兼容性:JavaFX可用于Windows、Linux、MacOSX等主流桌面操作系统。Java库:作为Java库,JavaFX由用本机Java代码编写的类和接口组成。FXML:它是一种基于XML的声明性标记语言,可用于定义JavaFX应用程序的用户界面结构。WebView:作为一个Web组件,它使用WebKitHTML技术在JavaFX应用程序中嵌入HTML内容。WebView中运行的JavaScript可以实现与JavaAPI的相互调用。Swing互操作性:现有的Swing应用程序可以使用JavaFX功能进行更新,例如嵌入式Web内容和丰富的图形媒体。使用JavaFX创建丰富的内容比使用Swing更容易。各种内置的UI控件:JavaFX提供了开发全功能应用程序所需的各种主要UI控件。类CSS样式:JavaFX可以使用CSS等标准Web技术进行外观设计。同时,它通过提供类似CSS的样式改进了我们的应用程序设计。CanvasAPI:该API支持直接在由图形元素组成的JavaFX场景区域内绘制。多点触控支持:JavaFX为底层平台的功能提供了多点触控操作的支持。集成图形库:JavaFX提供了各种可用于2D和3D图形的类。图形管道:JavaFX支持基于硬件加速图形渲染管道或Prism的图形。也就是说,当与受支持的显卡或GPU一起使用时,它能够提供流畅的图形。如果系统不支持显卡,Prism将默认使用软件渲染堆栈。自包含应用程序部署模型:这种类型的自包含应用程序包具有所有应用程序资源,以及Java和JavaFX运行时的私有副本。它们作为可安装的本机包分发,并提供与操作系统上的本机应用程序相同的安装和启动体验。3.JavaFX的应用结构如上图所示,JavaFX使用剧场模型来描述图形应用的建模。舞台(Stage)舞台代表顶级容器或窗口。它包含JavaFX应用程序中的所有对象。它由JavaFX.stage.Stage类定义。我们可以通过传递其尺寸(即:高度和宽度)来指定舞台的大小。舞台分为内容区和装饰区(即:标题栏和边框)。场景(Scene)场景代表JavaFX应用程序的物理内容。它包含所有单独的控件或组件。它由JavaFX.scene.Scene类定义。一个应用程序可以有多个场景,但在任何给定时间只能在舞台上显示一个场景。场景的大小可以通过将其尺寸(即:高度和宽度)连同根节点传递给其构造函数来指定。场景图(SceneGraph)场景图是一种树状数据结构(分层的),表示场景的内容。所有可视组件,包括:控件??、布局等,都是场景图的一部分。场景图组件必须附加到要显示的场景上,并且必须进一步附加到舞台上才能使整个场景可见。节点是场景图的视觉和图形对象。场景图节点由JavaFX.scene.Node类定义。一个节点可以包括:各种几何或图形对象:2D、3D。各种UI控件:Button、CheckBox、ChoiceBox和TextArea等。各种容器或布局面板:BorderPane、GridPane和FlowPane等。各种媒体元素:Audio、Video和Image对象。节点有以下几种类型:根节点:是场景图中的第一个节点。分支和父节点:如Group、Region、StackPane等,都有各种子节点。叶子节点:如Rectangle、Ellipse、Box、ImageView、MediaView等,都有各种子节点。4、JavaFX的各种组件JavaFX内置了大量的GUI组件,包括:按钮、文本域、表格、树、菜单、图表等,下面我们将重点介绍其中的一些主要组件。控件JavaFX控件是在JavaFX应用程序中提供某些控制功能的JavaFX组件。为了使小部件可见,它必须附加到场景对象的场景图。控件通常嵌套在一些JavaFX布局组件中,这些组件管理控件之间的布局。一些常见的JavaFX控件包括:Button、CheckBox、Label、Menu、RadioButton、TableView、TextField和TreeView。布局JavaFX布局是包含其他组件的组件。也就是说,布局组件管理嵌套在其内部的组件的布局。JavaFX布局组件有时也称为父组件,毕竟它们包含子组件。同时,布局组件是JavaFX类JavaFX.scene.Parent的子类。要可见,布局组件必须附加到场景对象的场景图。我们可以将布局组件嵌套在其他布局组件中。这对于实现特定布局非常有用。常见的JavaFX布局包括:Group,Pane,HBox,VBox,BorderPane,StackPane,andGridPane等。图表(Charts)JavaFX自带一套内置的即用型图表组件,用户可以免去编写图表的麻烦每次他们需要基本图表时都从头开始。2D/3D图形(2D/3DGraphics)JavaFX包括允许用户在屏幕上轻松绘制2D/3D图形的功能。音频(Audio)用户可以轻松地在JavaFX应用程序中播放音频。此功能对于游戏和教育应用程序非常有用。视频(Video)用户也可以轻松地在JavaFX应用程序中播放视频。此功能对于流媒体应用程序、游戏和教育应用程序也非常有用。网页视图(WebView)JavaFX包含一个基于WebKitHTML技术的WebView组件。该组件可以使用HTML和CSS显示各种网页。5.如何使用JavaFX构建GUI应用程序在这里,我们将创建一个简单的JavaFX应用程序。如下图所示,该应用程序由加载GIF、加载文本、十字按钮控件和背景组成。如果您想获取和研究其源代码,请参阅--https://gist.github.com/mansi7babbar/c0547010ab91c17f515c1fd4677cc4a2。接下来,让我们讨论构建JavaFX应用程序的具体步骤:设置入口点:我们从JavaFX.application.Application扩展一个JavaFXGUI程序。它是JavaFX应用程序的入口点。定义start方法:JavaFXSeeder类继承了Application类并实现了它的抽象方法start()。在这个方法中,我们将编写JavaFX图形的全部代码。设置场景:通过指定场景图的根(类型为JavaFX.scene.Group)来分配JavaFX.scene.Scene。我们也可以传入两个double类型的参数来表示场景的高和宽。设置舞台:首先设置JavaFX.stage.Stage对象,并使用setTitle()方法设置舞台的标题,使用setScene()方法将场景附加到舞台上。使用show()方法显示场景的内容。平台自己创建primaryStage舞台对象,作为参数传递给场景类的start方法。设置舞台的宽度、高度、任务栏图标、舞台风格。通过调用舞台对象的setAlwaysOnTop()将当前应用程序设置在其他应用程序之上。设置外部布局:在这里,我们使用JavaFX.scene.layout.StackPane作为顶层布局节点,以从后到前的堆栈布局其子节点。我们可以为StackPane分配一个唯一的ID和大小值。我们也可以使用setOnMousePressed()和setOnMouseDragged()这两个事件来处理程序,在外部布局上添加鼠标拖动事件。使用setAlignment()设置布局在屏幕上的具体位置。设置内部布局:外部布局节点有3个子节点,分别是:Image、JavaFX.scene.layout.HBox和JavaFX.scene.layout.VBox。HBox将其内容节点水平排列成一行。VBox将其内容节点垂直排列在一列中。我们可以将单独的节点添加到同一个布局控件中。其中,getChildren().add()可用于单节点,getChildren().addAll()可用于多节点。设置控件:JavaFX在JavaFX.scene.control包中提供了大量的控件(或组件)。构造一个Button控件,把它放在窗口的右上角,然后通过setOnAction()方法给Button添加JavaFX.event.EventHandler。我们可以通过实例化这个类,将JavaFX.scene.shape.Text嵌入到一个JavaFX场景中,然后设置文本的字体、颜色和位置。我们可以通过实例化JavaFX.scene.image.Image类在JavaFX中加载图像。加载后,我们可以通过实例化ImageView类并将图像传递给其构造函数来设置图像的视图。启动程序:在main()方法中,我们必须使用launch()方法来启动应用程序。该方法将在内部调用Application类的start()方法。6.小结上面我们不仅讨论了JavaFX的工作原理、主要特点和强大的功能,还研究了JavaFX的应用结构,以及如何将场景、舞台、场景图和节点构建成图形应用。我们还通过创建一个简单的JavaFX应用程序演示了JavaFX提供的大量内置GUI组件。原标题:JavaFX—OverviewwithHands-on,作者:MansiBabbar
