当前位置: 首页 > news >正文

Java语言程序设计基础篇_编程练习题**15.19 (游戏:手眼协调)

**15.19 (游戏:手眼协调)

  • 请编写一个程序,显示一个半径为10像素的实心圆,该圆放置在面板上的随机位置,并填充随机的顔色,如图15-29b所示。单击这个圆时,它会消失,然后在另一个随机的位置显示新的随机颜色的圆。在单击了20个圆之后,在面板上显示所用的时间,如图15-29c所示
  • 习题思路
  1.  新建一个面板Pane(),新建一个实心圆Circle,并将圆随机放置在面板上的一个位置,定义一个私有int类型count用于计数
  2. 获取当前的时间System.currentTimeMillis(),赋值给long类型startTime
  3. 为Circle注册一个事件(鼠标点击:SetOnMouseClick())
  4. 鼠标点击圆后将圆的位置再次随机设置
  5. 如果count等于20,获取当前时间,赋值给long endTimem,新建一个text表示时间,然后添加到pane中,同时从pane中移除Circle

代码示例:编程练习题15_19HandEyeCoordination.java 

package chapter_15;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
import javafx.stage.Stage;public class 编程练习题15_19HandEyeCoordination extends Application{private Pane pane = new Pane();private int count = 0;private Scene scene = new Scene(pane, 300, 300);@Overridepublic void start(Stage primaryStage) throws Exception {Circle circle = new Circle(10);circle.setFill(Color.RED); // 设置填充颜色circle.setStroke(Color.BLACK); // 设置边框颜色RandomLocation(circle);RandomColor(circle);pane.getChildren().add(circle);long startTime = System.currentTimeMillis();circle.setOnMouseClicked(e ->{RandomLocation(circle);RandomColor(circle);count++;if(count == 20) {long endTime = System.currentTimeMillis();long time = endTime - startTime ;Text text = new Text(pane.getWidth()/5, pane.getHeight()/2, "Time spent is "+time+" milliseconds");pane.getChildren().add(text);pane.getChildren().remove(circle);}});primaryStage.setTitle("编程练习题15_19HandEyeCoordination");primaryStage.setScene(scene);primaryStage.show();}public static void main(String[] args) {Application.launch(args);}public void RandomLocation(Circle circle) {double x = Math.random()*(pane.getWidth()-20)+10 ;double y = Math.random()*(pane.getHeight()-20)+10;circle.setCenterX(x);circle.setCenterY(y);}public void RandomColor(Circle circle) {circle.setFill(new Color(Math.random(), Math.random(), Math.random(), 1));}
}
  •  结果展示

 

http://www.lryc.cn/news/405856.html

相关文章:

  • 学习记录day16—— 数据结构 双向链表 循环链表
  • Air780EP模块 AT开发-MQTT接入OneNET移动物联网平台应用指南
  • HOST处理器预读PCI设备
  • 【Ansible】通过role角色部署lnmp架构
  • springboot给属性赋值的两种方式(yaml与properties)
  • 20240725 每日AI必读资讯
  • 17_高级进程间通信 UNIX域套接字1
  • 大型语言模型的生物医学知识图优化提示生成
  • winform datagrid 全部勾选
  • 从 NextJS SSRF 漏洞看 Host 头滥用所带来的危害
  • LC617-合并二叉树
  • 深入解析:端到端目标检测模型的奥秘
  • xmind--如何快速将Excel表中多列数据,复制到XMind分成多级主题
  • 在 Android 上实现语音命令识别:详细指南
  • 怎么理解FPGA的查找表与CPLD的乘积项
  • 51.2T 800G 以太网交换机,赋能AI开放生态
  • 【制作100个unity游戏之31】用unity制作一个爬坡2d赛车小游戏
  • Spring Boot 注解 @PostConstruct 介绍
  • 深度学习环境配置报错解决日记
  • 百度,有道,谷歌翻译API
  • java-双亲委派机制
  • 【C++】set的使用
  • React 18【实用教程】(2024最新版)
  • Perl语言入门学习指南
  • 《Java8函数式编程》学习笔记汇总
  • C语言之封装,继承,多态
  • GO内存分配详解
  • 每日Attention学习12——Exterior Contextual-Relation Module
  • 为什么现在电销公司这么难?
  • 每天一个数据分析题(四百四十二)- 标签与指标