1. 首页
  2. 编程语言
  3. Java
  4. JavaFX2基础教程

JavaFX2基础教程

上传者: 2020-07-30 02:38:35上传 PDF文件 1.27MB 热度 32次
JavaFX基础教程 从0开始 对JavaFX有一个全新认识前言关于 JavaFX的相关基础教程内容,都是翻译自 Oracle官方网站的相应内容。没有做过多的词句考量,但作为一般技术文档,读者应该都可以理解的。若有不便,还请谅解。这部分是第一篇,关于JavaⅩ2.0基础教程部分,还有另一部(第篇)关于内置控件的教程,也会尽快发布到网上。1 JavaFX概览1.1 JavaFX认知JavaFX平台是java客户端设计演进,使应用开发者易于创建和部署跨平台且表现一致的 Rich Internet Application(RAs)。同 avafx是由Java技术构建,基于髙性能硬件加速的媒体和图形引擎,」 avaFX平台提供了一套丰富的图形和媒休AP,简化了数据驱动的企业客户端部署作为Java生态体系的一部分,投资于 javafx平台将使java开发者和公司得到如下好处:1. JavaFX平台是由」ava构建的,java开发者可以继续使用原来的技巧、工具开发 JavaFX应用;2.由于Java的广泛使用,更容易找到有经验的开发者,并能很快成为一个高生产性的 JavaFX应用开发者3.基于java同类服务器和客户端平台套技术,诚少了 javafx平台商务方案的复杂性并降低了投资风险4.基于前述的优点,开发成本也减少了;5. JavaFX平台给开发者提供了一个开发框架和一个运行环境,以便创建支持java的跨平台企业和商务应用。注:查看后文“」 avaFX架构和框架”部分,可学习更多关于JaFX平台的架构和关键概念。1.2 JavaFX简史在2007年」 avant大会上,Sun公司介绍了 Javafx平台,以便帮助内容开发者和应用开发者去创建基于移动设备、桌面、电视以及其他消费设备的内容丰富的应用。初始版 javafx由Mble平台和 Javafx脚本语言构成,其它公开发布的都是基于初始版本的衍生。」 javafx13版于2010年4月22发布。在 Oracle收购Sun后, Oracle在2010年 Javaone大会宣布对 Javafx脚本语言的支持将停止。但同时也宣布作为 JavaFX20产品一部分的Javatⅸx脚本APs将被导入到」ava。这也意味着 JavaFX的功能对于所有java开发者将是可用的——不需要他们学习新的脚本语言。同时,Oracle宣布 Javafx将是富客户端应用首选的开发环境1.3 JavaFX2.0新特性Javatⅸ20的发行版主要焦点领域在于包括如下特征中(很多内容也在」 avaFX架构与框架中也有相应描述)JavaFX的 Java apis:提供所有java开发者常用的、熟悉的语言特性(诸如泛型、标注和多线程等)。这些APIs设计友好且可选择不同JM语言调用,诸如 JRuby和Sca|a由于 JavaFX功能通过 Java apls可用,你可以继续使用你钟爱的java开发工具(例如IDEs、代码重构、调试和解析工具等)去开发」 avaFX应用。〉新的图形引擎(GPUs):新引擎的基础是硬件加速的称之为Prism图形管道,并耦合了新的称之为Gass视窗工具包。图形引擎为当前和将来创建丰富图形提供了简化、润滑和快速的基础支持。新的声明式标记语言FXML:是基于xm并用于 JavaFX应用中定义用户接凵。FXML不需要编译。这样就意味着每次改变布局代码时不需要重新编译代码。新媒体引擎:支持web多媒体内容的重放。 JavaⅩ该框架提供稳定的、低延迟的媒体框架一一是基于GSτ reamer多媒体框架的Web组件:在 Java应用中使用 Webkit html渲染技术,实现组件的页面嵌入能力。通过 Prism实现硬件加速渲染有效可用更新浏览器插件: javafx浏览器插件允许基于 Prism加载JavaFX applets丰富的内建U控件:包括图、表格、菜单、布局面板。另外,通过提供的AP允许第三方发布U控件供用户社区使用。应用示例:展示了 JavaFX20技术的不同特性,并附有大量的示例代码和片段更新的 Doclet:使用 javadoc工具生成HTML格式的 Java FX AP文档(怎么使用这些更新的 doclet,详细信息可以査阅:随JavaFX使用 Doclet)。1.4用 JavaFX能构建什么图表-1展示了 JavaFX应用的一些示例略图。这些示例包含在JavaFX2.0的发布版中。为了运行这些示例和附加应用,可以到这里进一步查看:http://www.oracle.com/technetwork/java/javafx/down1oads/ index.htm1.。下载的示例zip文件包含 JavaFX例子以及扩展文件。解压后可双击相应的可执行文件(*,jar),如果JavaFX2.0环境正常,将可查看到相应的运行效果图表1 JavaFX应用示例应用示例描述JavaFX Ensemble(总效果示例)总效果演示提供了一个不同 JavaFX特性应用的展廊,例如动画、图表、控件等。应用示例描述Sales dashboard(销售仪表盘 - Dataapp个为虚构的全球汽车公司( Henley automobiles)构建的客户服务器应用。汽车销售使用 JavaDB并基于EJB模拟。这些数据通过Deby和 Restfulweb服务时可用的。通过使用FXML和JavaFX,实现客户端演示了不同的数据表现-m SwingInterop Sample这个 Swing应用展小了 Swing和 JavaFX可被如何联合。使用JavaFX组件在一个tab中实现了图表在另一个tab中实现了个简单的浏览每个示例的源代码在 javafx- samples8-2.0.xrc目录下。为了查看源代码,可在javafx- samples-2.0,x\src\目录进行查看。每个代码示例目录都是各异 NetBeans工程怎么创建 JavaFX应用因为JεvaX应用是用Java语言编写的,你可以使用你喜欢的编辑器或任何支持java语言的IDE( NetBeans, Eclipse, Oracle ]Developer, or intelli] idea ete.)来开发 Javafx应用。你也可以跟随下面的步骤介绍米开始Java应用的创建:1.ihttp://www.oraclecom/technetwork/iavaliavafx/downloads/ index. htm/下载 JavaFX SDK到 Release documentation页面查看系统需求和安装介绍(包括计划使用的版本2.学习 Getting Started with] avaFX教程创建简单动画应用附加资源使用下面的资源学习更多关于 JavaFX技术。Download javaFX 2.0 SDKJavaFX Architecture and frameworkJavaFX API DocumentationAdditional javaFX tutorials and articlesJavaFX 2.0 FeaturesJavaFX 2.0 FAQJavaFX 2.0 Roadmap2 JavaFX安装众所周知, JavaFX应用需要相应的环境支持。2.0版前 JavaFX不在此讨论范围,感兴趣者可以自行到 Oracle官网查看。本部分简单介绍安装,详细情况可以查看如下网页内容描ie:http://docs.oracle.com/liavafx/2.0/installation2-0-3/ifxpub-installation2-0-3.htm为了编写和运行 JavaFX程序,可以通过两种方式来灾现:其一,下载」DK7 with javaFXSDK由 Java se7 Update2开始,这版JK包含 JavaFX SDK。其,单独下载单机版 JavaFX SDK,推荐」DK版木为」K6u26到」Dκ7u1。具体卜载哪一版木,则根据需要选择如果只是运行 Java FX桌面应用和 Applet,可只下载JavaⅩ运行时环境安装即可默认 JavaFX SDK安装目录结构如下所示(可自行选择安装目录):CiProgram Files oraclewavaFX 2.0COPYRIGHT htmlbindocstoolsREADME htmlTHIRDPARTYLICEN,txtbin/:SDK构建工具docs/:AP文档。rt/: JavaFX运行时目录tools/:基于Ant任务的打包和部署工具。建议使用 NetBeans iDe71进行 JavaFX廾发。载 NetBeans与 JavaFX绑定版安装后,即可以直接进行开发了,包括进行调试、源码管理等。也可通过插件来使用 Eclipse进行开发(不做具体介绍)为了可以更好的理解和学习 JavaFX应用开发,建议下载 JavaFX示例。下载地址:http://www.oracle.com/technetwork/iavaliavafx/downloads/index.html为了运行这些示例,必须安裝 JavaFX运行时支持,相应的桌面应用,可以直接双击ar文件执行。另外,解压文件后,每个示例源码都是 Netbeans工程文件,且只能在 NetBeans ide71下方可运行调试(下一篇介绍 JavaFX2.0架构和框架以及关键点)3 JavaFX架构和框架avaFX2.0是基于Java技术构建的富客户端平台,使应用开发者易于创建和部署跨平台的富互联网应用( Rich Internet Application RIAs)图-1描述了 JavaFX2.0的架构性组件构成。这部分将描述图表构成的每个组件以及这些组成部分如何交互。 JavaFX公开APs依存于真正运行 JavaFX代码的应用引擎。它的构成子组件包括新的高性能图形引擎(代号 Prism)、新的体积小且高效的视窗体系(代号 Glass)媒体引擎、web引擎。尽管这些组件没有公开暴露,但关于这些的描述能有助于你吏好地理解」avaFⅩ应用是如何运作的。JavaFX Public API's and Scene GraphQuantum ToolkitPrismGlass Windowing Toolkit Media Engine Web EngineJava2 D i Open GL非D3D图-1 JavaFX20架构图3.1场景图Java FX场景图(图-1顶层部分)是构建」 avaIL应用的起始点。它是应用图形接口所有可视元素节点的层级节点树,并能处理输入及渲柒。场景图中的单个元素称为节点。每个节点有一个标识1D、样式类及绑定量。每个节点有单一的父类以及零到多个子节点,节点也可有如下功能:效果化,诸如模糊、阴影化处理:不透明;变换;事件处理,诸如鼠标、键盘以及输入方法等;特定应用状态处理。不像在Swng和AWT( Abstract window toolkit)中, Java FX场景图也有基本图形,例如矩形、文本框,还有控件、布局容器、图片以及媒介处理等。对于大多数使用,场景图简化了Us的工作,特别是在使用富Us吋。各种各样的动画能更快的完成,并且声眀式方法(如基于XML)也能很好的显效运行这个 javafxscene的AP允许创建和规范好几种类型的内容,例如节点:图形(2D和3D)、图片、媒体、嵌入式血浏览器、文本框、Ul控件、图表、分组以及容器状态:变换(节点位置和方向)、可视化效果以及其它可视化状态内容动画:随时间变化的场景图对象属性特征;效果:改变场景图节点面貌的简单效果对象,诸如模糊、阴影、颜色调整等。关于场景图这部更多信息,可以查看“基于JvFX场景图工作”部分文档描述3.2 JavaFX特征APIJavaFX2.0平台包括一套完整的公共APs,如图-1最顶层所示。这些APs为构建富客户人入胜的媒体功能形成直观、站式丌发环境。这些针对 JavaFX特征的」 ava AP\s布、引端(RAs)提供了空前的自由和灵活性。 JavaFX结合了」ava平台最好的功能,以全面的允许使用强大的java特性,如泛型、标注和多线程对于Web开发者来讲,使用 JavaFX进行开发,相比其它流行动态语言,如 JRuby、Groovy和 JavaScript,更为容易些。允许Java开发者使用其它系统语言,如 Groovy,来编写人型的或复杂的 JavaFX应用允许使用类似于Java-X脚本语言绑定。这种绑定包括高性能“懒”绑定、绑定表达式、范围序列表达式、局部绑定再赋值等。可选语言(如 Groovy)也能引入使用类似 JavaFX脚木的绑定语法。扩展Java集合库,包括可观察Lsts和Maps。这样允许应用连接用户界面和数据模型,观察数据模型的变化,并一致性的更新相应UI控件。JavaFX2.0AP和编程模型是 JavaFX1x产品线的延续,大多数的 Java fX Apls已经导入到Java中。有些APls,如布局和媒体,以及其它许多相关细节,基于发行版 JavaFX1用户反馈,已经进行了改进并简化。 Java FX2.0依赖于更多的web标准,如样式控制CSS、访问性规蒞ARA。其它附加web标准也在审查中3.3图形系统JavaFX图形系统(如图-1蓝色部分)是一个在 JavaFX场景图层下的细节实现,支持2D和3D场景图。该图形系统在系统图形硬件加速渲染不足时,可实现软件渲染。 JavaFX2.0平台实现的两个图形加速管道为1、 Prisn处理渲染工作。它能运行在硬件和软件渲染器上,包括3-D。负责光栅化和渲染 JavaFX场景。下列多个渲染途径可基于设备使用:◇ Windows xp和 Windows vista上的 Directx9今 Windows7上的 Directx11◇Mac、 linux及嵌入设备上的 penGLJava2D(不能硬件加速时)。可能时完全硬件加速可用,但当不可用时,Java2D渲染途径可用(因为Java2D渲染器发行于所有JREs中)。当处理3-D场景时,这是特别重要的。当然使用硬件渲染器时性能史好些。2、 Quantum Toolkit把 Prism和 Glass Windowing Toolkit连接在一起,并使它们在堆栈上对 JavaFX层可用。它也管理着与事件处理相对与渲染有关的线程规贝
下载地址
用户评论
码姐姐匿名网友 2020-07-30 02:38:35

讲的很不错,如果在加上中文API就更赞了

码姐姐匿名网友 2020-07-30 02:38:35

不错的资源,有帮助。

码姐姐匿名网友 2020-07-30 02:38:35

可以但是我还没有学会

码姐姐匿名网友 2020-07-30 02:38:35

基础知识,没有更深入的东西

码姐姐匿名网友 2020-07-30 02:38:35

基础知识,没有更深入的东西,感觉一般

码姐姐匿名网友 2020-07-30 02:38:36

讲的很不错,就是还缺个中文api就看的更明白了,那个官网的例子跟着多做几遍其实就是javaGUI