JavaFX学习

Java的GUI

GUI --- Graphics User Interface 图形用户界面。 Java的GUI技术分三代: 1、awt --- 它是使用当前操作系统的图形图像库来完成快速的界面实现。但是由于不同操作系统的图形图像库在很多细节上是有差异的,所以导致同一段JavaGUI程序在不同的操作系统上运行会有显示上的差异性。

2、swing --- 它是Java的第二代GUI库,把第一代库当中可能出现差异性的类给取代调用了,让Java自己去生成它们,比如:我们在前面使用的JOptionPane就是属于swing当中的一个类。

所以很长一段时间,Java的GUI开发是使用awt + swing共同实现的,也被称之为swt。

3、到了08年左右,SUN公司提出了一套新的GUI技术,被称之为"JavaFX"。它推翻了之前的swt,采用Java对象+CSS样式+XML配置的形式。它在JDK8的时候被纳入到了JDK默认的包当中,但是JDK9的时候又被移除了,成为一个独立的模块,让程序员根据自己的需求进行添加。

说一句:不管是JDK中一直自带的awt+swing,还是现在JavaFX,其实都不是我们之后要用的界面实现。我们更多的界面实现还是用的是HTML+CSS+JS的浏览器端开发,只有极少的情况需要用到桌面版的GUI技术。

JavaFX的基本结构和概念

Application --- 代表了JavaFX的应用程序

Stage --- 舞台 --- 代表了一个窗体。 在Application的start方法中,提供了一个默认的窗体对象。我们也可以根据自己的需要,new出新的窗体。

Scene --- 场景 --- 代表了窗体当中的内容板。 Scene对象在创建的时候要求传参,参数是一个布局。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值