package com.meyacom.first;
import static java.lang.Math.random;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.StrokeType;
import javafx.stage.Stage;
import javafx.util.Duration;
/***
*
* 类名:FivthDemo
*
* @author 朱湘鄂
* @Created Date:2011-7-14 @Created Time:下午03:36:33
* @Copyright 2011-2023 MYC Corporation, All Rights Reserved.
* 这个实例是在第
*/
public class FivthDemo extends Application{
/**
* 方法用途:
* 方法名称: main
* @param args
* 返回类型:void
* 返回值说明:
*/
public static void main(String[] args) {
Application.launch(args);//这个方法是唯一在main方法里面调用的
}
@Override//重写start方法
public void start(Stage arg0) throws Exception {
Group root = new Group();//创建一个根节点
Scene scene = new Scene(root,800,600,Color.BLUE);//背景的颜色
arg0.setScene(scene);
Group cycle = new Group();
for(int i=0;i<30;i++){
Circle circle = new Circle(150,Color.web("red",0.05));
circle.setStrokeType(StrokeType.OUTSIDE);
circle.setStroke(Color.web("white",0.16));
circle.setStrokeWidth(4);
cycle.getChildren().add(circle);
}
//cycle.setEffect(new BoxBlur(10,10,3));//添加模糊效果
Rectangle colors = new Rectangle(scene.getWidth(),scene.getHeight(),//创建一个矩形的效果图
new LinearGradient(0f,1f,1f,0f,true,CycleMethod.NO_CYCLE,new //从左下角0,0开始,在右下角1,1结束的一个线性填充
Stop[]{//stop序列代表一个渐变的点
new Stop(0,Color.web("#f8bd55")),
new Stop(0.14,Color.web("#c0fe56")),
new Stop(0.28,Color.web("#5dfbc1")),
new Stop(0.43,Color.web("#64c2f8")),
new Stop(0.57,Color.web("#be4af7")),
new Stop(0.71,Color.web("#ed5fc2")),
new Stop(0.85,Color.web("#ef504c")),
new Stop(1,Color.web("#f2660f")),
}));
//root.getChildren().add(colors);//不添加渐变到容器root中
//root.getChildren().add(cycle);//不将圆添加到背景中
//应用混合模式
//Group blendModeGroup = new Group(//创建混合模式
// new Group(new Rectangle(scene.getWidth(),scene.getHeight(),Color.BLACK),cycle),colors);//该混合模式包含两个子元素
//第一个是一个匿名的Group,第二个是上面创建的那个cycle
//blendModeGroup.setBlendMode(BlendMode.OVERLAY);//
//root.getChildren().add(blendModeGroup);//添加blendModeGroup的场景图
//添加动画,随机的移动
Timeline timeline = new Timeline();
for(Node circle:cycle.getChildren()){
timeline.getKeyFrames().addAll(
new KeyFrame(Duration.ZERO,
new KeyValue(circle.translateXProperty(),random()*800),
new KeyValue(circle.translateYProperty(),random()*600)
),
new KeyFrame(new Duration(40000),
new KeyValue(circle.translateXProperty(),random()*800),
new KeyValue(circle.translateYProperty(),random()*600)
)
);
}
timeline.play();
root.getChildren().add(colors);//不添加渐变到容器root中
root.getChildren().add(cycle);//不将圆添加到背景中
arg0.setVisible(true);//让stage可见
arg0.setTitle("练习五--动画特效");
}
}
分享到:
相关推荐
这个压缩包“javafx.rar”包含了与JavaFX相关的练习题,特别是针对第14、15和20章的Java编程课程作业。这些章节通常涵盖Java基础、面向对象编程以及可能涉及到的JavaFX基本概念和控件。 在JavaFX中,我们可以利用其...
这个压缩包中的"javafx练习代码"应该是为了帮助开发者更好地理解和掌握如何在JDK 11环境下使用JavaFX进行编程。 JavaFX提供了丰富的组件库,包括按钮、文本框、菜单、对话框等,使得开发者可以方便地构建复杂的用户...
在练习项目中,可以尝试创建一个简单的计算器或音乐播放器,这样不仅可以巩固基础知识,还能实际体验到JavaFX的强大功能。此外,利用JavaFX的SceneBuilder工具可以可视化地设计界面,这对初学者来说是一个很好的辅助...
本练习将指导你如何在 JavaFX 平台上绘制 2D 贝塞尔曲线,并实现交互功能。 首先,了解贝塞尔曲线的基本概念。贝塞尔曲线由一系列控制点定义,这些控制点并不实际位于曲线上,但它们决定了曲线的形状。一条贝塞尔...
javaFx in Action 英文版 共 385 页 带书中练习程序
5. **事件处理**:JavaFX 提供了丰富的事件处理机制,可以轻松响应用户的交互操作。 6. **FXML**:FXML 是一种XML语言,用于声明式地构建用户界面。它与Java控制器类配合使用,可以使界面和业务逻辑分离,提高代码...
5. **用户输入处理**:JavaFX提供了EventHandler接口,可以监听键盘事件,从而控制蛇的移动。例如,根据用户按下上、下、左、右键来改变蛇的移动方向。 6. **渲染**:使用JavaFX的Scene和Group类来组织和绘制游戏...
书中的教学方式逐步深入,每个概念都建立在前一个概念的基础之上,配有练习和示例解决方案,以便检验理解程度,加速学习进程。此外,书中的表格形式呈现了如运算符等复杂的JavaFX Script构造,使其成为一本易于查阅...
5. **Modena和Caspian主题**:JavaFX提供预设的主题,如Modena和Caspian,以改变应用程序的视觉风格。 【开发环境和工具】 为了开发JavaFX应用,通常需要以下工具: 1. **JDK**:安装支持JavaFX的JDK版本,例如...
JavaFXJava FX 练习JavaFX 是 Java 的跨平台 GUI 工具包,是 Java Swing 库的后继者。安装如果您已经使用 Java 开发应用程序,那么您可能根本不需要下载任何内容自 JDK 版本 7u6(2012 年 8 月)以来,JavaFX 已包含...
JavaFX 是一个强大的Java库,用于创建桌面、移动和嵌入式平台的丰富用户界面。...此外,这个项目也是一个很好的机会,去练习软件工程的原则,如模块化、代码复用和测试,这对于任何程序员来说都是非常重要的技能。
本项目是一个集合了测试、练习和相关文档的存储库,旨在帮助开发者更好地理解和运用JavaFX与NetBeans平台的集成。 JavaFX是Oracle公司推出的一种用于构建桌面和移动设备上富客户端应用的图形用户界面(GUI)框架。...
【CallCenterAbstraction】是一个基于JavaFX的实践项目,它为初学者提供了一个学习和练习JavaFX编程的平台。JavaFX是一种用于构建桌面、移动和Web应用的富客户端UI框架,它提供了丰富的图形和媒体功能,使得开发者...
本项目是一套基于JavaFX和mysql实现的驾考习题管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过...
养猪者 扫雷克隆-学习JavaFX的练习 非常基本,所有文本按钮等等,没有图形-但目的是要发挥全部功能。
【JavaSE上机练习5.zip】是一个包含Java标准版(Java Standard Edition,简称JavaSE)编程练习的压缩文件。这个练习可能由田超凡这位原创作者设计,旨在帮助学习者深入理解和掌握JavaSE的核心概念和技术。JavaSE是...
练习JavaFX OpenCV 使用OpenCV基于Gradle的JavaFX App。 推荐环境 操作系统:Windows 10 ・ MacOS Catalina ・ Ubuntu 18.04 (包括JavaFX) Windows 10: jdk-8u65-windows-x64.exe MacOS Catalina: jdk-8u65-...
8. **Java Swing或JavaFX**: 对于图形用户界面(GUI)编程,Java提供了Swing库或现代的JavaFX。练习可能包括创建简单的窗口应用,添加控件,处理用户事件。 9. **递归与算法**: 通过解决递归问题,可以锻炼解决问题...
JavaFX是Java编程环境中用于创建桌面应用程序...总的来说,这个JavaFX实现的俄罗斯方块游戏不仅是一个有趣的编程练习,也是一个全面展示Java编程和图形用户界面设计的实例,对于提升学生的编程技能和项目经验大有裨益。
五、JavaFX应用程序生命周期 * JavaFX应用程序的生命周期指的是应用程序从启动到关闭的整个过程。 * 在JavaFX应用程序中,start方法是应用程序的入口点,用于启动应用程序。 * main方法是JavaFX应用程序的入口点,...