What Is JavaFX?
JavaFX is an open source Java-based framework for developing rich client applications. It is comparableto other frameworks on the market such as Adobe Flex and Microsoft Silverlight. JavaFX is also seen as thesuccessor of Swing in the arena of graphical user interface (GUI) development technology in Java platform.The JavaFX library is available as a public Java application programming interface (API). JavaFX containsseveral features that make it a preferred choice for developing rich client applications:bull; JavaFX is written in Java, which enables you to take advantage of all Java featuressuch as multithreading, generics, and lambda expressions. You can use any Javaeditor of your choice, such as NetBeans, to author, compile, run, debug, and packageyour JavaFX application.bull; JavaFX supports data binding through its libraries.bull; JavaFX code can be written using any Java virtual machine (JVM)-supportedscripting languages such as Visage, Groovy, and Scala.bull; JavaFX offers two ways to build a user interface (UI): using Java code and usingFXML. FXML is an XML-based scriptable markup language to define a UIdeclaratively. Oracle provides a tool called Scene Builder, which is a visual editor forFXML.The GUI in JavaFX is constructed as a scene graph. A scene graph is a collection of visual elements,called nodes, arranged in a hierarchical fashion. A scene graph is built using the public JavaFX API. Nodes ina scene graph can handle user inputs and user gestures. They can have effects, transformations, and states.Types of nodes in a scene graph include simple UI controls such as buttons, text fields, two-dimensional(2D) and three-dimensional (3D) shapes, images, media (audio and video), web content, and charts.Prism is a hardware-accelerated graphics pipeline used for rendering the scene graph. If hardwareacceleratedrendering is not available on the platform, Java 2D is used as the fallback rendering mechanism.For example, before using Java 2D for rending, it will try using DirectX on Windows and OpenGL on MacLinux and embedded platforms.The Glass Windowing Toolkit provides graphics and windowing services such as windows and the timerusing the native operating system. The toolkit is also responsible for managing event queues. In JavaFX,event queues are managed by a single, operating system–level thread called JavaFX Application Thread. Alluser input events are dispatched on the JavaFX Application Thread. JavaFX requires that a live scene graphmust be modified only on the JavaFX Application Thread.Prism uses a separate thread, other than the JavaFX Application Thread, for the rendering process.It accelerates the process by rendering a frame while the next frame is being processed. When a scene graphis modified, for example, by entering some text in the text field, Prism needs to re-render the scene graph.Synchronizing the scene graph with Prism is accomplished using an event called a pulse event. A pulseevent is queued on the JavaFX Application Thread when the scene graph is modified and it needs to be rerendered.A pulse event is an indication that the scene graph is not in sync with the rendering layer in Prism,and the latest frame at the Prism level should be rendered. Pulse events are throttled at 60 frames per secondmaximum.The media engine is responsible for providing media support in JavaFX, for example, playing backaudios and videos. It takes advantage of the available codecs on the platform. The media engine uses aseparate thread to process media frames and uses the JavaFX Application Thread to synchronize the frameswith the scene graph. The media engine is based on GStreamer, which is an open source multimediaframework.The web engine is responsible for processing web content (HTML) embedded in a scene graph. Prismis responsible for rendering the web contents. The web engine is based on WebKit, which is an open sourceweb browser engine. HTML5, Cascading Style Sheets (CSS), JavaScript, and Document Object Model (DOM)are supported.
History of JavaFX
JavaFX was originally developed by Chris Oliver at SeeBeyond and it was called F3 (Form Follows Function).F3 was a Java scripting language for easily developing GUI applications. It offered declarative syntax, statictyping, type inference, data binding, animation, 2D graphics, and Swing components. SeeBeyond wasbought by Sun Microsystems and F3 was renamed JavaFX in 2007. Oracle acquired Sun Microsystems in2010. Oracle then open sourced JavaFX in 2013.The first version of JavaFX was released in the fourth quarter of 2008. The current release for JavaFX isversion 8.0. The version number jumped from 2.2 to 8.0. From Java 8, the version numbers of Java SE andJavaFX will be the same. The major versions for Java SE and JavaFX will be released at the same time as well.Table 1-1 contains a list of releases of JavaFX. Starting with the release of Java SE 8, JavaFX is part of the JavaSE runtime library. From Java 8, you do not need any extra set up to compile and run your JavaFX programs.
System Requirements
You need to have the following software installed on your computer:Java Development Kit 8NetBeans IDE 8.0 or laterIt is not necessary to have the NetBeans IDE to compile and run the programs in this book. However,the NetBeans IDE has special features for creating, running, and packaging JavaFX applications to makedevelopersrsquo; lives easier. You can use any other IDE, for example, Eclipse, JDeveloper, or IntelliJ IDEA.
JavaFX Runtime Library
All JavaFX classes are packaged in a Java Archive (JAR) file named jfxrt.jar. The JAR file is located in thejre\lib\ext directory under the Java home directory.If you compile and run JavaFX programs on the command line, you do not need to worry about settingthe JavaFX runtime JAR file in the CLASSPATH. Java 8 compiler (the javac command) and launcher (thejava command) automatically include the JavaFX runtime JAR file in the CLASSPATH.The NetBeans IDE aut
剩余内容已隐藏,支付完成后下载完整资料
JavaFX是什么?
JavaFX是一个开放源码的基于java的框架,用于开发富客户机应用程序。它可以与市场上的其他框架(如Adobe Flex和Microsoft Silverlight)进行比较。JavaFX在Java平台的图形用户界面(GUI)开发技术领域中也被看作是Swing的成功。JavaFX库可用作公共Java应用程序编程接口(API)。JavaFX包含几个特性,使它成为开发富客户机应用程序的首选项:bull;JavaFX是用Java编写的,它使您能够利用所有的Java特性,例如多线程、泛型和lambda表达式。您可以使用您选择的任何Javaeditor,比如NetBeans,编写、编译、运行、调试和packageyour JavaFX应用程序。bull;JavaFX通过其库支持数据绑定。bull;JavaFX代码可以使用任何Java虚拟机(JVM)支持的脚本语言,如Visage、Groovy和Scala。bull;JavaFX提供了两种构建用户界面(UI)的方法:使用Java代码和usingFXML。FXML是一种基于xml的脚本标记语言,用于定义一个ui声明。Oracle提供了一个名为Scene Builder的工具,它是一个可视化编辑器forFXML。JavaFX中的GUI构建为场景图。场景图是一组可视元素,称为节点,以分层的方式排列。场景图是使用公共JavaFX API构建的。场景图可以处理用户输入和用户手势。它们可以产生效果、转换和状态。场景图中的节点类型包括简单的UI控件,如按钮、文本字段、二维(2D)和三维(3D)形状、图像、媒体(音频和视频)、web内容和图表。Prism是一种用于渲染场景图的硬件加速图形管道。如果在平台上不能使用硬件加速,则使用Java 2D作为回退呈现机制。例如,在使用Java 2D进行rend之前,它将尝试在Windows和OpenGL上使用MacLinux和嵌入式平台上的DirectX。玻璃窗口工具包提供了图形和窗口服务,例如windows和使用本机操作系统的时间。工具箱还负责管理事件队列。在JavaFX中,事件队列由一个名为JavaFX应用程序线程的操作系统级线程管理。将所有用户输入事件发送到JavaFX应用程序线程。JavaFX要求必须在JavaFX应用程序线程上修改现场场景图形。Prism使用一个单独的线程,而不是JavaFX应用程序线程,用于呈现过程。它通过呈现一个帧来加快进程,而下一个帧正在被处理。例如,当一个场景经过修改时,通过在文本框中输入一些文本,Prism需要重新呈现场景图。使用一个称为脉冲事件的事件来完成对场景图与Prism的同步。当场景图被修改时,一个pulseevent在JavaFX应用程序线程上排队,它需要重新运行。脉冲事件表明,场景图与Prism中的渲染层不同步,而在Prism级别上的最新帧应该呈现。脉冲事件以每秒60帧的速度进行节流。媒体引擎负责在JavaFX中提供媒体支持,例如播放backaudios和视频。它利用了平台上可用的编解码器。媒体引擎使用aseparate线程来处理媒体框架,并使用JavaFX应用程序线程来将帧与场景图同步。媒体引擎是以GStreamer为基础的,它是一个开源的multimediaframework。web引擎负责处理嵌入在场景图中的web内容(HTML)。Prismis负责呈现web内容。web引擎基于WebKit,它是一个开源的web浏览器引擎。支持HTML5、层叠样式表(CSS)、JavaScript和文档对象模型(DOM)。
JavaFX的历史
JavaFX最初是由SeeBeyond的Chris Oliver开发的,它被称为F3(形式跟随功能)。F3是一种Java脚本语言,可以轻松地开发GUI应用程序。它提供了声明性语法、静态类型、类型推断、数据绑定、动画、2D图形和Swing组件。SeeBeyond被Sun Microsystems收购,F3在2007年更名为JavaFX。甲骨文在2010年收购了太阳微系统公司。Oracle在2013年开源JavaFX。JavaFX的第一个版本在2008年第四季度发布。当前版本的JavaFX isversion 8.0。版本号从2.2跳到8.0。从Java 8中,Java SE和javafx的版本号将是相同的。Java SE和JavaFX的主要版本将同时发布。表1-1包含一个JavaFX版本的列表。从JavaSE 8的发布开始,JavaFX是JavaSE运行时库的一部分。从Java 8开始,您不需要任何额外的设置来编译和运行JavaFX程序。
系统需求
你需要在你的电脑上安装以下软件:Java开发工具包8NetBeans IDE 8.0或laterIt没有必要有NetBeans IDE编译和运行程序在这本书中。然而,NetBeans IDE具有用于创建、运行和打包JavaFX应用程序以使开发人员的生活更轻松的特殊功能。您可以使用任何其他IDE,例如Eclipse、JDeveloper或IntelliJ IDEA。
JavaFX运行时库
所有JavaFX类都打包在一个名为jfxrt.jar的Java Archive (JAR)文件中。JAR文件位于Java主目录下的jre\lib\ext目录中。如果您在命令行上编译和运行JavaFX程序,您不必担心在类路径中设置JavaFX运行时JAR文件。Java 8编译器(javac命令)和启动器(Java命令)自动将JavaFX运行时JAR文件包含在类路径中。当您创建Java或JavaFX项目时,NetBeans IDE会自动包含类路径中的JavaFX运行时JAR文件。如果您使用的是NetBeans以外的IDE,您可能需要包括jfxrt。在IDE类路径中,从IDE中编译并运行JavaFX应用程序。
JavaFX源代码
有经验的开发人员有时更喜欢查看JavaFX库的源代码,以了解如何在幕后实现。Oracle提供JavaFX源代码。Java 8安装复制源代码在Java主目录中。文件名是javafx-src.zip。将文件解压缩到一个目录,并使用您喜欢的Java编辑器打开源代码。
第一个JavaFX应用程序
让我们编写第一个JavaFX应用程序。它应该在一个窗口中显示文本“Hello JavaFX”。我将采取循序渐进的方法来解释如何开发第一个应用程序。我将添加尽可能少的代码行,然后解释代码做了什么以及为什么需要它。
创建HelloJavaFX类
JavaFX应用程序是一个必须从JavaFX中的应用程序类继承的类。应用程序包。您将命名您的类HelloFXApp,它将存储在com.jdojo.intropackage中。清单1-1显示了HelloFXApp类的初始代码。注意,HelloFXApp类不会在此时编译。您将在下一节中修复它。
压倒一切的start()方法
如果您尝试编译HelloFXApp类,它将导致以下编译时错误:HelloFXApp不是抽象的,它不会覆盖应用程序中的抽象方法启动(Stage)。错误是说应用程序类包含一个抽象的start(Stage Stage)方法,它在hellofxapp类中没有被重写。作为一个Java开发人员,您知道下一步要做什么:您要么声明HelloFXApp类为抽象类,要么为start()方法提供一个实现。这里,让我们为start()方法提供一个实现。应用程序类中的start()方法声明如下:public抽象void start(Stage Stage)抛出java.lang.Exception。
展示的舞台
与现实世界中的一个阶段类似,JavaFX stage用于显示场景。一个场景有视觉效果——比如astext、形状、图像、控件、动画和效果——用户可以与之交互,就像所有基于gui的应用程序一样。在JavaFX中,主阶段是场景的容器。阶段外观和感觉与应用程序运行的环境不同。您不需要基于环境采取任何行动,因为JavaFX运行时负责为您处理所有细节。例如,如果应用程序作为adesktop应用程序运行,主阶段将是一个带有标题栏的窗口和显示场景的区域;如果应用程序在web浏览器中运行applet,主要阶段将是浏览器窗口中的嵌入式区域。应用程序启动程序创建的主要阶段没有场景。在下一节中,您将为您的舞台创建一个场景。你必须在舞台上展示它的场景中所包含的视觉效果。使用show()方法来显示舞台。还可以使用setTitle()方法为舞台设置标题。
启动应用程序
现在可以运行第一个JavaFX应用程序了。您可以使用以下两个选项之一来运行它:没有必要有一个main()方法在课堂上开始一个JavaFX应用程序。当运行从应用程序类继承的Java类时,javacommand将启动JavaFX应用程序,如果运行的类不包含main()方法。如果你在main_,。launch()方法以字符串数组作为参数,这是传递给JavaFX应用程序的参数。如果您正在使用第一个选项,您不需要为HelloFXApp类编写任何附加代码。
添加main()方法
如前一节所述,Java 8启动程序(Java命令)不需要main()方法来启动JavaFX应用程序。如果您想要运行的类从应用程序类继承,java命令将通过自动调用Application.launch()方法启动JavaFX应用程序。如果您正在使用NetBeans IDE来创建JavaFX项目,那么您不需要使用main()方法来启动JavaFX应用程序,如果您通过运行JavaFX项目来运行该应用程序。然而,NetBeans IDE要求您在运行JavaFX applicationclass作为文件时使用main()方法,例如,通过选择HelloFXApp文件,右键单击它,并从菜单中选择run file选项。有些ide仍然需要main()方法来启动JavaFX应用程序。本章中的所有示例将包括将启动JavaFX应用程序的main()方法。
在舞台上添加场景。
场景类的一个实例,它位于javafx中。场景包,代表场景。一个舞台包含一个场景,一个场景包含了视觉内容。场景的内容安排在树状的层次结构中。在层次结构的顶部是rootnode。根节点可能包含子节点,而子节点则可能包含子节点,等等。必须有一个根节点来创建场景。您将使用VBox作为根节点。VBox表示垂直框,它在一个列中垂直排列其子元素。
改善HelloFX应用程序
JavaFX能够做的比您目前看到的要多得多。让我们增强第一个程序和添加更多的用户界面元素,如按钮和文本字段。这一次,用户将能够与应用程序进行交互。当单击一个按钮时,将触发一个ActionEvent。您可以添加一个ActionEvent处理程序来处理事件。使用setOnAction()方法为按钮设置一个ActionEvent处理程序。下面的语句为按钮设置了一个ActionEvent处理程序。处理程序终止应用程序。您可以使用lambda表达式或匿名类来设置ActionEvent处理程序。改进的HelloFX程序显示一个窗口,如图1-4所示。这个窗口包含了twolabels、一个文本字段和两个按钮。一个VBox用作场景的根节点。在文本框中输入一个名称,然后单击“Hello”按钮,以查看“Hello”消息。在不输入aname的情况下点击“Say Hello”按钮,就可以在那里显示“Hello”。应用程序在标签控件中显示一条消息。单击exit按钮退出应用程序。
将参数传递给JavaFX应用程序。
像Java应用程序一样,您可以将参数传递给JavaFX应用程序。有两种方法可以将参数传递到JavaFX应用程序:在命令行上为一个独立的应用程序在Java applet网络启动协议(JNLP)文件和WebStart应用参数类,这是一个应用程序类的静态内部类,封装了参数传递给一个JavaFX应用程序。它将参数分为三类:命名参数未具名参数原始参数(命名和未具名参数)需要使用以下三个参数类的方法访问三种类型的参数:Map lt; String,String gt; getname()列表lt;字符串gt; getUnnamed()列表lt;字符串gt; getRaw()可以命名或不知名的一个参数。命名参数由(名称、值)对组成。一个未命名的参数由一个值组成。getNamed()方法返回一个Map,其中包含名称参数的键值对。getUnnamed()方法返回一个列表,其中每个元素都是一个未命名的参数值。您只将命名和未命名的参数传递给JavaFX应用程序。您不传递原始类型参数。JavaFX运行时使所有的参数,命名的和未命名的,通过参数类的getRaw()方法传递给应用程序,作为列表。下面的讨论将使三种方法的返回值之间的区别变得清晰。应用程序类的getParameters()方法返回应用程序的引用。参数类。在应用程序类的init()方法和随后执行的代码中,可以使用参数类的引用。在应用程序的构造函数中,参数是不可用的,因为在init()方法之前调用它。在构造函数中调用getParameters()方法返回null。清单1-7中的程序读取传递给应用程序的所有类型的参数,并在TextArea中显示它们。TextArea是一个显示多行文本的UI节点。
启动JavaFX应用程序之前,我在开发JavaFX的第一个应用程序时提到了启动JavaFX应用程序的主题。本节将提供关于启动JavaFX应用程序的更多细节。每个JavaFX应用程序类都继承了应用程序类。应用程序类位于javafx中。应用程序包。它包含一个静态的launch()方法。它的唯一目的是启动JavaFX应用程序。这是一个重载的方法用以下两种变体:静态空发射(类lt; ?扩展应用程序gt; appClass,弦hellip;hellip;args)静态空发射(字符串hellip;注意,您不会创建JavaFX应用程序类的对象来启动它。当调用launch()方法时,JavaFX运行时将创建应用程序类的对
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[463482],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。