`
Ivan_Pig
  • 浏览: 388253 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JavaFX GUI------1动画效果

    博客分类:
  • RIA
阅读更多
     之前翻译了JavaFX Script,后来一段时间就再没碰JavaFX,本想等Sun出Linux版的时候再看,但是Sun老不出,郁闷,还是回到了win下来看JavaFX了。自己对Swing还算比较了解,所以JavaFX GUI,难度也不大,不过还是有一些不同点的,总结一下。
     顺便说下NetBeans6.5 for JavaFX1.1还不错,在项目的属性里面,run选项中,application,webstart,web,mobile四种运行方式都提供了,想以哪种方式运行就以哪种方式运行,还是很方便的,不过底层就了解得少了。没什么关系,先学会了,在深究也不迟。      



     下面入正题。
     对Swing比较熟悉的人,学习JavaFX的GUI会发现,基本只是换了个写法罢了,很容易明白。但是JavaFX里面还有有一些独有的东西,像动画效果。做过Swing的都知道,动画不过就是不停的擦除和重画而已,所以在Swing里面做动画的做法是不停的改变图形的位置,然后调用界面的paint或者paintComponent方法重新画,就形成了动画。
      而JavaFX则借鉴了Flash关键帧的做法,来实现了动画效果。相关教程可以观看Sun的官方文档,《使用 JavaFX 构建 GUI 应用程序-教程概述》第 7 课:创建动画对象。
      做过Flash肯定对关键帧再熟悉不过了,Flash里面有个时间轴,当Flash开始运行的时候,一条时间线会向前走,当时间线走到关键帧的时候,图形会是预先定义的样子,而在两个关键帧之间,Flash会自动的调整图形,以形成动画。JavaFX也是这个原理。JavaFX的Timeline 和 keyFrame就很直观的说明了时间轴和关键帧了。借用教程代码。
Timeline {
  keyFrames: [
         KeyFrame{
         time: 0s
         values: x => 0.0
         },

         KeyFrame{
         time: 7s
         values: x => 387.0 tween Interpolator.LINEAR
         } 
  ]
}.play();

Timeline就是上面说的时间轴了,时间轴上有keyFrames,这里是定义了两个关键帧,一个关键帧在时间为0秒处,一个为时间7s处。这里的意思就是,x在2秒时为0.0,到7秒时变为387.0,之间JavaFX会自动做补间动画(又是Flash术语)。如下图示意(好久不玩Flash了,没装Flash,就手动画了个示意图)。



JavaFX还提供了简写。
Timeline {
  keyFrames: [
         at (0s) {x => 0.0},
         at (7s) {x => 387.0 tween Interpolator.LINEAR}
  ]
}.play();

意思还是很明了的,在(at)0秒的时候x为0.0,在(at)7秒的时候x变为387

问题:教程里提到tween 运算符是插值的字面值构造函数,这个没有更深入的介绍了,看tween Interpolator.LINEAR的字面意思是线性插入,但是我去掉后好像没什么影响,不知有人知道具体用法没有?

JavaFX动画效果,相对Swing来说可是简单了很多
  • 大小: 4.2 KB
  • 大小: 11.1 KB
6
0
分享到:
评论
2 楼 liuxuan620 2009-04-23  
看tween Interpolator.LINEAR的字面意思是线性插入,但是我去掉后好像没什么影响,不知有人知道具体用法没有?

因为Interpolator.LINEAR就是默认的值,加不加无所谓
1 楼 vissul 2009-03-19  
谢谢您的分享,您能在发表一片在jsp中使用javafx的文章么?

相关推荐

    luke-javafx-7.4.0-luke-release

    JavaFX支持2D和3D图形,动画效果,以及跨平台兼容性,使得Luke可以在多种操作系统上运行,包括Windows 7。在Luke 7.4.0中,用户可以期待一个更加直观且响应迅速的界面,便于浏览和查询索引中的文档和字段。 在...

    javafx-src.zip_javaFx_javafx src_javafx- src_javafx-src_javafx.r

    它提供了丰富的图形用户界面(GUI)工具,使得开发者可以创建出具有现代视觉效果和交互体验的应用程序。`javafx-src.zip`是一个包含JavaFX源代码的压缩包,对于开发者来说,这个资源极其有价值,因为它允许深入理解...

    javaFx 学习--入门示例程序的源码

    1. **初始化JavaFX应用程序**: 在JavaFX中,我们需要继承 `Application` 类,并重写 `start(Stage primaryStage)` 方法。这个方法是应用启动时被调用的地方,`primaryStage` 参数代表了主舞台,即应用程序的主要...

    javafx画板-源码

    此外,JavaFX还提供了一些高级特性,如Transitions(过渡动画)和Timeline(时间线),可用于创建平滑的动画效果。例如,可以使用Transition来改变图形的颜色或位置,使用户界面更加动态和交互。 在项目的实现过程...

    javaFx 学习--之Adding Dynamic Behavior(加动态特性源码)

    JavaFX 是一个用于创建桌面应用、移动应用以及嵌入式系统的强大的Java图形用户界面(GUI)框架。在“Adding Dynamic Behavior”这个主题中,我们主要关注如何为JavaFX应用程序添加动态行为,使得用户界面能够根据...

    JavaFX 构建GUI 应用程序

    ### JavaFX 构建GUI应用程序知识点详解 #### 一、JavaFX GUI简介 **JavaFX** 是一个用于构建丰富的客户端应用程序的平台,特别是在图形用户界面(GUI)领域有着广泛的应用。JavaFX 提供了一套完整的工具和框架,...

    openjfx-11.0.2_linux-x64_bin-sdk.zip

    - `lib/modules` 子目录:包含了JavaFX模块的`.jar`文件,如`javafx.controls.jar`,`javafx.fxml.jar`等,它们提供了GUI控件和FXML布局文件的支持。 - `lib/openjfx.jmod`:这是Java模块系统中的模块文件,可以...

    javafx-src.zip

    JavaFX提供了丰富的图形和媒体功能,包括2D和3D图形、动画、图表、视频和音频支持。它的设计目标是简化UI开发,使得开发者可以使用声明性语法创建复杂的界面,同时保持Java的强大和灵活性。 在压缩包中,我们看到三...

    JavaFX教程-图形

    除了以上基本的饼图创建,JavaFX还提供了许多其他功能,如自定义颜色、添加交互性(如鼠标点击事件处理)、动画效果等。对于更复杂的图表,如折线图、区域图等,可以使用 `LineChart`, `AreaChart` 等类,它们同样...

    3D-JavaFX-Tutoriales.zip

    6. **动画**:JavaFX的动画框架使得3D对象的动态行为变得简单,通过`Timeline`或`Transition`类,可以轻松实现对象的平滑移动、旋转等效果。 在“3D-JavaFX-Tutoriales.zip”这个压缩包中,"JavaFX-Tutoriales-...

    javafx_samples-8u102-ea-b04-windows-25_apr_2016

    1. **丰富的UI组件**:JavaFX包含一系列预定义的UI组件,如按钮、文本框、标签、滚动条等,这些组件可以方便地拖放到应用程序中,进行自定义和布局管理。 2. **CSS样式**:JavaFX支持CSS样式,允许开发者通过样式表...

    GUI-Framework.rar

    2. **WPF (Windows Presentation Foundation)**: 作为.NET Framework的高级GUI框架,WPF引入了XAML(可扩展应用程序标记语言),使得UI设计更加直观和分离,支持数据绑定、模板化和动画效果,更适合开发现代、富媒体...

    javafx_scenebuilder-2_0-windows

    1. **图形化界面**:直观的GUI设计环境,允许开发者通过视觉布局来设计应用界面。 2. **组件库**:内置了大量JavaFX标准控件,如Button、Label、TableView等,只需拖放到设计画布即可。 3. **实时预览**:在设计过程...

    javafx-SceneBuilder-20.0.0

    动画和效果可以被无缝地应用于更复杂的UI中。  FXML视觉编辑器  Scene Builder生成FXML,这是一种基于XML的标记语言,使用户能够定义一个应用程序的用户界面,与应用程序的逻辑分开。你也可以打开和编辑由其他...

    jxbrowser7.19.1 javafx windows模块化整合版

    它支持2D和3D图形、媒体播放、CSS样式以及动画效果,是Java SE的一个重要组成部分。JavaFX允许开发者使用Java语言或者其脚本语言(如Groovy或Kotlin)来创建跨平台的应用程序,具有出色的性能和丰富的UI设计能力。 ...

    javafx-scr.zip

    这种结构使得开发者能够方便地进行动画效果的创建和布局管理。 此外,JavaFX还提供了Media API,用于播放音频和视频,支持各种常见的媒体格式。同时,2D和3D图形功能让开发者能够创建富有视觉吸引力的应用,例如...

    [Gail_Anderson,_Paul_Anderson]_Essential_JavaFX(b-ok.org).pdf

    JavaFX为Java开发者提供了一个强大的GUI开发框架,它不仅简化了用户界面的设计,还支持多媒体集成、动画效果等多种高级特性。通过学习JavaFX,开发者能够快速构建出功能丰富且美观的应用程序。希望以上内容能够帮助...

    javafx-2_2_25-apidocs

    在JavaFX 2.2.25版本中,这一API文档包含了各种类、接口、枚举和注解,覆盖了图形用户界面(GUI)、媒体处理、 scenegraph、事件处理等多个核心模块。 1. **基础组件与布局**: - `Node`:JavaFX中的基本图形元素...

    clase-19-gui-c-a-f-Dannygua:clase-19-gui-caf-Dannygua由GitHub Classroom创建

    5. **JavaFX**:尽管项目标签只提到了Java,但JavaFX也是现代Java GUI开发的一个重要选项,它提供了更现代的外观和感觉,以及更强大的动画和媒体支持。 6. **组件的定制和组合**:学习如何创建自定义组件或组合现有...

Global site tag (gtag.js) - Google Analytics