JavaFX概述和简介

富互联网应用是那些提供与Web应用程序类似的功能,并可作为桌面应用程序体验的应用。与用户的正常网络应用程序相比,它们提供更好的视觉体验。这些应用程序可作为浏览器插件或作为虚拟机提供,用于将传统静态应用程序转换为更加增强,流畅,动画和引人入胜的应用程序。

与传统的桌面应用程序不同,RIA不需要任何额外的软件来运行。作为替代需要安装一些软件,如:ActiveXJavaFlash,这取决于应用程序使用的组件。

在RIA中,图形表示在客户端处理,因为它有一个丰富的图形提供支持的插件。 简而言之,RIA中的数据操作在服务器端执行,而相关对象操纵在客户端端执行。

有三个主要技术可使用于开发丰富的互联网应用程序(RIA Rich Internet Applications)。三个主要技术如下:

  • Adobe Flash
  • Microsoft Silverlight
  • JavaFX

Adobe Flash

这个软件平台由Adobe Systems开发,用于创建富互联网应用程序。 除此之外,还可以构建其他应用程序,如矢量,动画,浏览器游戏,桌面应用程序,移动应用程序和游戏等。

这是开发和执行RIA的最常用平台,桌面浏览器渗透率为96%

Microsoft Silverlight

像Adobe Flash一样,Microsoft Silverlight也是用于开发和执行富互联网应用程序的软件应用程序框架。最初,这个框架用于流媒体。当前版本还支持多媒体,图形和动画。
这个平台较少使用,用于桌面浏览器渗透率66%

JavaFX

JavaFX是一个Java库,可以使用它开发富互联网应用程序。通过使用Java技术,这些应用程序的浏览器渗透率为76%

JavaFX是什么?

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

要使用Java编程语言开发GUI应用程序,程序员依赖于诸如高级窗口工具包(AWT)和Swings之类的库。在JavaFX出现之后,这些Java程序开发就可以有效地利用丰富的类库来开发GUI应用程序。

为什么需要JavaFX

要开发具有丰富特性的客户端应用程序,程序员过去依赖于各种库来添加诸如媒体,UI控件,Web,2D和3D等功能。JavaFX将所有这些功能包括在单个库中。除了这些,开发人员还可以访问Java库的现有功能,如:Swings。

JavaFX提供了一组丰富的图形和媒体API,并通过硬件加速图形利用现代图形处理单元。JavaFX还提供了接口,开发人员可以使用它们组合图形动画和UI控件。

可以使用JavaFX和基于JVM的技术,如Java,Groovy和JRuby。 如果开发人员选择JavaFX,没有必要学习额外的技术,因为任何上述技术的先前知识将足以开发使用JavaFX的RIA。

JavaFX的特性

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

  • 使用Java语言编写- JavaFX库都是用Java编写的,可用于在JVM上执行的语言,包括Java,Groovy和JRuby。这些JavaFX应用程序也是平台无关的。
  • FXML - JavaFX采用称为FXML的语言,这是一种类似声明式标记语言的HTML。这种语言的唯一目的是定义用户界面。

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

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

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

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

  • 画布和打印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一起使用时,它提供平滑的图形。 如果系统不支持图形卡,则棱镜默认为软件渲染堆栈。

JavaFX历史

JavaFX最初由Chris Oliver开发,当时他正在为一家名为See Beyond Technology Corporation的公司工作,在2005年,这个公司被Sun Microsystems收购了。

这个项目的更多信息,有以下几点 -

  • 最初,这个项目被命名为F3(表单跟随函数),它的开发旨在为开发GUI应用程序提供更丰富的界面。

  • Sun Microsystems于2005年6月收购了See Beyond公司,将F3项目改造为JavaFX

  • 在2007年,JavaFX正式在Java One会议上宣布,这是一个年度举行的世界网络会议。

  • 在2008年,JavaFX与Net Beans集成。同年,JavaFX 1.0的Java标准开发工具包发布。

  • 在2009年,Oracle公司收购了Sun Microsystems,并在同一年发布了下一个版本的JavaFX(1.2)。

  • 在2010年,JavaFX 1.3开发完成并发布,并在2011年JavaFX 2.0发布。

  • 最新版本JavaFX8,在2014年3月18日作为Java的一个组成部分一起发布。

 
上文出自【易百教程】 原文链接:https://www.yiibai.com/javafx/javafx_overview.html

SenceBuilder工具介绍、安装教程

1. JavaFX Scene Builder是什么?

JavaFX Scene Builder是一种可视布局工具,允许用户快速设计JavaFX应用程序用户界面,而无需编码。用户可以将UI组件拖放到工作区,修改其属性,应用样式表,并且它们正在创建的布局的FXML代码将在后台自动生成。它的结果是一个FXML文件,然后可以通过绑定到应用程序的逻辑与Java项目组合。

JavaFX Scene Builder 2.0的开发界面如下所示 :

JavaFX Scene Builder可以集成到IDE(如EclipseNetbean)中。在这篇文章中,将指导您安装JavaFX Scene Builder并将其集成到Eclipse中,扩展IDE功能。

2. 安装必须条件

在上文JavaFX历史中我们介绍到,现在JavaFX 最新版本是JavaFX8版本,JDK8中对JavaFX做了重大升级(JavaFX8),新增了一些界面元素,默认使用了一个新的界面风格,一些API变化(尤其是底层非公开接口部分),同时也引起了一些CSS Class层次的变化,这导致原来在JDK7下写的JavaFX2程序在升级到JDK8之后,效果一塌糊涂,没有严格遵循FX单线程的地方甚至无法运行。也就是说,最新版本JavaFX程序,并不支持和兼容JDK7及以下版本的JDK。

因此,首先确保自己的JDK版本在JDK8及以上的版本。那么在Eclipse当中如何查看自己的JDK或者JRE版本呢?(关于JDK和JRE的区别,可参考这篇文章: https://www.cnblogs.com/lsw9/p/8685623.html )

Eclipse中依次点击 Window--> Preferences--> Java--> Complier

如图,右边红色方框里面内容就是你当前所使用的JDK的版本,如果低于JDK8,请去升级更新JDK版本。

要将Scene Builder嵌入到Eclipse中,

其次需要安装e(fx)clipse,这是JavaFX编程所需一组工具(库)。需要安装它作为eclipse插件

如果还没有安装e(fx)clipse,那么可通过下面的安装e(fx)clipseEclipse的指南:

3. 下载JavaFX Scene Builder

下载JavaFX Scene Builder 2.0 最新版本很简单,访问以下网址下载即可:

笔者是用的OS是 Winidows x64系统,读者根据自己OS来选择对应的安装文件。

补充说一点,国内某多广告会员博客站点有中文版的Scene Builder工具,个人觉得比官方的英文版工具容易使用。

4. 安装JavaFX Scene Builder

双击下载好的 javafx_scenebuilder-2_0-windows.msi,文件进行安装。安装的路径随意选择,我的建议是安装在Eclipse的文件夹根目录下,因为这Scene BuilderElipse的扩展工具,方便IDE使用者查找和管理。

5.设置Eclipse 启动 JavaFX SenceBuilder 可执行程序的路径

Eclipse中依次点击 Window--> Preferences--> JavaFX --> Browser

 根据自己安装Scene Builder的文件路径 选择 JavaFX Scene Builder 2.0.exe 文件,然后Apply and Close。 这样就可以在Eclipse当中使用Scene Builder可视化开发工具了。

Scene Builder 简易使用教程

这一部分,笔者就和大家如何简单使用Scene Builder来快速开发图形程序,参照QQ邮箱网页版登录,来开发一个简单的登录页面的图形UI程序

新建一个JavaFX Project,打开Ecipse 依次点击 File--> New--> Project--> JavaFX --> JavaFX Project

点击Next>   然后在新弹出窗口里输入JavaFX Project名, 这里新建一个 项目名为 QQloginUI 的JavaFX Project

Eclipse会自动生成如下所示的项目文件夹

右键application --> New --> Other

找到JavaFX,双击

FXML文件根据自己的习惯命名,我建立一个名为config的FXML文件,点击Finish完成。

接着,右键QQloginUI项目中application包下config.fxml文件,选择Open with SceneBuilder。(如果还没有配置Eclipse打开Scene Builder可执行程序路径,参照上面Scene Builder安装集成教程)

打开Scene Builder 2.0图形开发工具 页面如下

把默认的AnchorPane删除,然后依次拖入Pane  Label  Line  TextField  CheckBox Button Label

#标签Label 微信登录# 笔者是这样设置#Properties 属性

#标签Label 微信登录# 的淡蓝色背景是这样设置  Properties--> JavaFX CSS--> Style--> -fx-background-color   #dbf9fb

CSS的样式: -fx-background-color    颜色值:#dbf9fb

当然CSS的样式可以采用更加复杂更加美观的样式,请大家自行选择尝试。标签Lable QQ登录 属性设置同上操作。

#文本框TextField 账号输入框# 笔者是这样设置#Properties 属性

#文本框TextField 密码输入框# 同样设置

#按钮Button 登录按钮# 笔者是这样设置 Properties 属性

#按钮Button 登录按钮# 的深蓝色背景是这样设置 Properties--> JavaFX CSS--> Style--> -fx-background-color    #2648f4

CSS的样式: -fx-background-color    颜色值: #2648f4

#标签Label 扫码快速登录登录#,#标签Label 忘了密码?# 笔者如下图设置字体颜色值: #50cefc

按快捷键 Ctrl + S  将Sence Builder工具内设计的图形界面保存到我们QQLoginUI项目 application包下 config.fxml文件中,可以看到config.fxml文件中代码增加,这是Scene Builder帮我们自动生成的代码。在Scene Builder中可以点击 Preview--> Show Preview in Window 护着使用快捷键Ctrl + P可以预览开发的图形外观。

如下图所示:

用户登录设计界面已完成,Scene Builder可以关闭。我们回到Eclipse中编译运行QQLoginUI项目 application包下 Main.java代码

会发现,登录界面呢?怎么图形程序显示一片空白?

分析产生问题的原因:QQLoginUI项目 application包下 Main.java代码中的面板容器并没有关联到我们开发的图形程序

解决方法:如下如所示

然后在Eclipse中运行程序,结果如下图所示,大功告成。

简易使用Scene Builder开发UI图形程序的教程笔者就介绍到这里。

JavaFX简介和Scene Builder工具的安装使用简易教程的更多相关文章

  1. windows下用pycharm安装tensorflow简易教程

    https://blog.csdn.net/heros_never_die/article/details/79760616 最近开始学习深度学习的相关知识,准备实战一下,看了一些关于tensorfl ...

  2. 数据库工具DbVisualize安装、破解教程,亲测可用

    之前工作中遇到生产环境不允许导入Oracle的dmp文件,只能导入sql脚本,但是表中存在clob字段,直接用plsql工具无法导出clob字段,用了下dbvisualizer可以直接导出,亲测可用. ...

  3. 隐写工具zsteg安装及使用教程

    zsteg可以检测PNG和BMP图片里的隐写数据. 目前,zsteg支持检测: LSB steganography in PNG & BMP zlib-compressed data Open ...

  4. 测试工具APPScan安装与使用教程

  5. lombok安装与简易教程(一)

    lombok简单的来讲就是在编译的时候,可以帮助我们生成getter与setter等方法,减少代码量.这可是一个好东西啊 1.eclipse安装lombok java -jar lombok.jar ...

  6. windows 安装K8s 简易教程

    1. 先安装 chocolatey https://chocolatey.org/install administrator 运行 命令: @"%SystemRoot%\System32\W ...

  7. 安装JavaFX Scene Builder,并配置到Eclipse

    转载自:https://www.yiibai.com/javafx/install-javafx-scene-builder-into-eclipse.html 1-JavaFX Scene Buil ...

  8. javafx:JavaFX Scene Builder 2.0打开含有第三方jar包的fxml文件报错 Caused by: java.lang.ClassNotFoundException

    报错如下: java.io.IOException: javafx.fxml.LoadException: /C:/User.................test.fxml at com.orac ...

  9. 使用eclipse和JavaFX Scene Builder进行快速构建JavaFX应用程序

    http://blog.csdn.net/wingfourever/article/details/7726724 使用eclipse和JavaFX Scene Builder进行快速构建JavaFX ...

随机推荐

  1. mysql uuid使用

    java中可以使用UUID类来生成uuid,使用mysql也可以使用UUID函数来获取uuid,如 select UUID(); 也可以对查询的结果做一些处理,比如说将"-"替换成 ...

  2. Ubuntu使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多字母解决方案

    原因是系统只装了vi,没有装vim.因为vi是不能直接按退格键删除字符的.所以重新装下vim指令即可: # sudo apt-get install vim 重新使用vi命令进行文件编辑.

  3. springboot 集成druid

    1.druid简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBo ...

  4. javaweb技术入门

    JavaWeb巩固和进阶 1.如何配置外部应用? 方法一: server.xml 在<Host>中添加如下配置 <Context path="/xxx" docB ...

  5. 【SQL server】SQL Server 触发器

    触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删 ...

  6. [数学基础]奇异值分解SVD

    之前看到过很多次奇异值分解这个概念,但我确实没有学过.大学线性代数课教的就是坨屎,我也没怎么去上课,后来查了点资料算是搞清楚了,现在写点东西总结一下. 奇异值分解,就是把一个矩阵拆成一组矩阵之和.在数 ...

  7. Zygote家的大儿子 —— SystemServer

    本文基于 Android 9.0 , 代码仓库地址 : android_9.0.0_r45 文中源码链接: SystemServer.java SystemServiceManager.java Sy ...

  8. Http协议Content-Length详解

    前言 http协议是互联网中最重要的协议之一,虽然看上去很简单,但是实际中经常遇到问题,我们就已经遇到好几次了.有长连接相关的,有报文解析相关的.对http协议不能一知半解,必须透彻理解才行.本文通过 ...

  9. 局部敏感哈希LSH(Locality-Sensitive Hashing)——海量数据相似性查找技术

    一. 前言     最近在工作中需要对海量数据进行相似性查找,即对微博全量用户进行关注相似度计算,计算得到每个用户关注相似度最高的TOP-N个用户,首先想到的是利用简单的协同过滤,先定义相似性度量(c ...

  10. Linux入门(网络配置)

    Linux入门之 网络管理及网络配置 网络管理   NetworkManager,是一个为系统自动连接到网络提供检测和配置的程序,NetworkManager对无线和有线网络都可以管理,特别对于无线网 ...