最近,做一个桌面应用程序的项目,需要考察相关技术,对于经常使用Java的我们来说,很自然的找Java的桌面程序开发技术,发现JavaFX是比较合适的,简单熟悉了一下,写出来给大家做个参考。

一 Java的图形用户界面技术的发展

Java的图形用户界面技术,主要有AWT,Swing,SWT/JFACE。

AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java图形用户界面的基本工具。AWT的缺点是在原生的用户界面上仅提供了一个非常薄的抽象层,AWT不能保证程序在各种平台上表现一致,违背了Java“一次编写,到处运行”的信条。

Java Swing是Java Foundation Classes(JFC)的一部分,相对于AWT,Swing是轻量级元件,缺点是运行速度慢,优点是可以在所有平台上采用统一的行为。Swing也提供了比AWT更为丰富的组件和强大功能,但Swing的灵活性也增加了其复杂性和难以上手,让很多初学者望而却步,所以Swing也没有发展起来。

SWT(Standard Widget Toolkit)/JFace是Java的一种图形API标准,JFace是在SWT的基础上,采用MVC模式进行封装而形成的一个新的类库。SWT Designer的Eclipse插件,可以采用可视化拖拽的方式开发Window图形用户界面。SWT/JFace具有比AWT更为丰富的控件,比Swing跟为快捷的速度。也有缺点,它们不是Java语言标准,某些平台并不支持。

java技术的发展,从AWT,Swing,SWT,JFace到JavaFX,图形用户界面工具包。其中SWT/JFace用的相对较多,AWT,Swing技术较为陈旧,用的比较少,JavaFX没有推广开,用的人也相对较少。

二 javaFX简介

JavaFX是Java下一代图形用户界面工具包。包括一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。JavaFX允许开发人员快速构建丰富的跨平台应用程序。JavaFX通过硬件加速图形支持现代GPU。JavaFX允许开发人员在单个编程接口中组合图形,动画和UI控件。

JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。因为 JavaFX Script是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用JavaFX技术创建和管理大型程序变为可能。

三 JavaFX插件安装并配置到eclipse中

1 首先安装e(fx)clipse

打开 Eclipse,点击菜单 Help -> Install New Software。在弹出窗口填写如下内容Name: e(fx)clipse
Location: http://download.eclipse.org/efxclipse/updates-released/2.4.0/site

efxclipse的具体版本根据实际情况填写。

2安装JavaFX Scene Builder

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

下载JavaFX Scene Builder很简单,访问以下网址下载即可:

http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-1x-archive-2199384.html

正常安装后,在eclipse中进行设置。

启动eclipse,并选择:Window
-> References

选择左侧的JavaFX,在右侧界面SceneBuilder
executable中选择secnebuilder的exe文件路径,确认。

四 javaFX技术

1 形状

为了在JavaFX场景上渲染图形,我们需要基本的形状和颜色。Node类是所有JavaFX场景图形节点的基本基类。它提供了转换和应用效果到任何节点的能力。

javafx.scene.shape.Shape类是Node类的子类。所有较旧的JavaFX
2.x Builder中使用,但在JavaFX 8中这个类已弃用。

JavaFX的形状主要包括JavaFX线条、JavaFX矩形椭圆、JavaFX路径、JavaFX圆弧、JavaFX多边形折线、JavaFX曲线、JavaFX文本等。

2 属性

属性部分包括JavaFX颜色、JavaFX渐变颜色、JavaFX属性、JavaFX绑定、JavaFX集合等。

3 布局

JavaFX有多种布局形式,主要包括JavaFX FlowPane布局、JavaFX HBox布局、JavaFX Vbox布局、JavaFX BorderPane布局、JavaFX GridPane布局、JavaFX ScrollPane布局、JavaFX TitledPane布局、JavaFX Accordion布局等。

4 UI控件

JavaFX的UI控件很多,类似于前端表单中使用的一些控件,主要有按钮、单选按钮、切换按钮、复选框、选择框、文本域(输入框)、密码字段、超链接、进度条、进度指示器、滚动条、日期选择器(DatePicker)、颜色选择器(ColorPicker)、文件选择器(FileChooser)、菜单等。

详细了解,请参考,易百教程:https://www.yiibai.com/javafx/

JavaFX技术简要总结的更多相关文章

  1. 基于Web的实验室管理系统技术简要报告

    基于Web的实验室管理系统技术简要报告 Copyright 朱向洋 Sunsea ALL Right Reserved 一.网站架构 该网站使用C#语言,利用SQL Server2008数据库,采用V ...

  2. 毕设1--利用Java实现网页的模板功能技术---简要了解

    首先,关于我对自己的毕业设计题目的理解,其中没有接触过的技术有怎么用Java实现将原有的Word的模板上传到网页中,在网页中进行相关操作.之所以把这部分放在一开始来进行了解是因为没有接触过这一方面,比 ...

  3. Smart Client技术简要总结

    摘要:Smart Client简称智能客户端,是Microsoft推出的一种将B/S(瘦客户端)和C/S(胖客户端)结合在一起的一种技术.Smart Client结合了B/S和C/S的优势,具有新的特 ...

  4. 重磅消息:JavaFX官方文档翻译完毕

    经过XMan团队业余时间半年的努力,终于将JavaFX官方文档全部翻译完毕,内容已经全部在http://www.javafxchina.net中发表. 中文文档具体目录如下: 第一篇 开始学习Java ...

  5. JavaFX - 富互联网应用

    JavaFX教程™ --必看https://www.yiibai.com/javafx /================= 富互联网应用 是那些提供与Web应用程序类似的功能,并可作为桌面应用程序体 ...

  6. JavaFX——简单的日记系统

    前言 在学习Swing后,听老师说使用Java写界面还可以使用JavaFX.课后,便去了解.JavaFX是甲骨文公司07年推出的期望应用于桌面开发领域的技术.在了解了这个技术几天后,便使用它完成Jav ...

  7. Web UI 技术发展历程

    本文内容 纯文本和静态 HTML 页面 服务器端技术 插件技术--ActiveX.Applet 和 Flash Ajax 异步时代和基于 JavaScript 的 UI 技术 RIA--Adobe F ...

  8. CPU硬件辅助虚拟化技术

    目前主要有Intel的VT-x和AMD的AMD-V这两种技术.其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest O ...

  9. JavaFX教程

    JavaFX是Java的下一代图形用户界面工具包.JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序. JavaFX允许开发人员快速构建丰富的跨平台应用程序.JavaFX通 ...

随机推荐

  1. 搭建 vue2 单元测试环境(karma+mocha+webpack3)

    从网上找了很多例子关于单元测试,都是如何新建项目的时候的添加单元测试,用vue-cli中怎么添加,但是我的项目已经生成了,不能再一次重新初始化,这时如何添加单元测试,这里面遇到了好多坑,写在这里记录一 ...

  2. Go缓存DNS

    Go里面的DNSclient没有带任何的缓存,语言层面没有任何的缓存,但是我们可以通过下面这样的代码来 这样当我们调用http.Client的时候就会采用这个缓存的ip了,里面用到的dnscache是 ...

  3. 【BZOJ 2744】【HEOI2012】朋友圈

    题目链接: TP 题解: 对于A国,我们发现,最大团一定不大于2.对于B国,发现同奇偶性点之间都有边,不同奇偶性之间可能有边,也就是说对于B国是一个二分图最大团,也就是求B国补图的二分图最大独立集.然 ...

  4. python接口自动化(二十五)--unittest断言——下(详解)

    简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门  没错最初的话题就是登录,由于博客园的登录机制改变了,本篇以我找到的开源免费的登录API为案例,结合 unittest 框 ...

  5. safari 浏览器 input textarea select 等不能响应用户输入

    解决办法 -webkit-user-select:auto; /*webkit浏览器*/ user-select:auto; -o-user-select:auto; -ms-user-select: ...

  6. 华为手机无法使用USB调试的解决方案

    在Android开发中,一直在使用华为的荣耀8进行调试,但是突然某一次,发现USB调试无法使用了,且在其他的电脑上进行调试也不行. 后来经过查资料,总算解决了此问题,在这里进行一下解决方案的记录. 需 ...

  7. Django解决跨域问题

    原理:浏览器的同源策略,其实我们的请求发送过去了,服务器也进行响应了,就是浏览器把响应给阻止响应而已 第一种方法jsonp 因为浏览器不对 <script> 标签里面的src属性进行阻止, ...

  8. Python爬虫入门教程 58-100 python爬虫高级技术之验证码篇4-极验证识别技术之一

    目录 验证码类型 官网最新效果 找个用极验证的网站 拼接验证码图片 编写自动化代码 核心run方法 模拟拖动方法 图片处理方法 初步运行结果 拼接图 图片存储到本地 @ 验证码类型 今天要搞定的验证码 ...

  9. Solr 17 - Solr的时间为什么比本地少8小时 (附修改方法)

    目录 1 为什么少8小时 2 如何查看Solr的时区 3 修改Solr的时区 3.1 Solr从数据库中同步数据的原理 3.2 为什么要修改时区 3.3 如何修改时区 1 为什么少8小时 (1) 原因 ...

  10. 《HelloGitHub》第 34 期

    公告 新年快乐!大家的年终奖都发了啥? <HelloGitHub>第 34 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源 ...