Java语言程序设计基础篇_编程练习题**14.29(游戏:豆机)

第十四章第二十九题
  • **14.29 (游戏:豆机)

请写一个程序,显示编程练习题 7.21 中介绍的豆机,如图 14-52c 所示

  • 代码展示
package chapter_14;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
import javafx.scene.shape.Polyline;
import javafx.stage.Stage;public class 编程练习题14_29BeanMachine extends Application{@Overridepublic void start(Stage primaryStage) throws Exception {Pane pane = new Pane();int startX = 300;int startY = 200;for(int row = 1;row <= 8;row++) {//绘制点int temp = startX;for(int col = 1;col<=row;col++) {Circle c = new Circle(temp,startY,10);pane.getChildren().add(c);temp += 60;}startX -= 30;startY+=40;}int x = 90;for(int i = 0;i < 8;i++) {//绘制直线Line line = new Line(x,480, x,550);x+=60;line.setStrokeWidth(2);pane.getChildren().add(line);}Polyline polyline = new Polyline(//绘制折线240,60,240,150,30 ,480,30, 550,570, 550,570, 480,360, 150,360, 60);polyline.setStrokeWidth(2);pane.getChildren().add(polyline);Scene scene = new Scene(pane, 600, 600);primaryStage.setTitle("编程练习题14_29BeanMachine");primaryStage.setScene(scene);primaryStage.show();}public static void main(String[] args) {Application.launch(args);}
}
  • 代码解释: 

导入包

首先,代码导入了JavaFX库中所需的类,这些类用于构建用户界面和图形元素。

类定义

定义了一个名为编程练习题14_29BeanMachine的类,它继承自Application类,这是JavaFX应用程序的基础类。

start方法

这是JavaFX应用启动时调用的主要方法。在这个方法里,程序构建了整个UI场景。

创建 Pane
  • 首先,创建一个Pane对象,它是JavaFX中的一个容器,用来布局其他UI元素。
绘制豆子落点
  • 通过两层循环绘制圆形(代表豆子可能的落点)。外层循环控制行数(共8行),内层循环控制每行的圆圈数量,圆圈横向等距分布,每向下一行,起始点左移并下移一定距离(startX,startY)。
绘制水平线
  • 绘制了8条水平线,代表豆子最终可能落入的容器分隔线,这些线从90像素开始,每隔60个像素绘制一条,绘制七条。
绘制多边形边界
  • 使用Polyline绘制了豆子机的边界形状,定义了一系列坐标点构成一个开放多边形,包括顶部、两侧和底部,用于视觉上封闭豆子机的结构。
设置场景和舞台
  • 创建一个Scene对象,将之前创建的Pane作为其根节点,并设置了场景的大小为600x600像素。
  • 设置主舞台(Stage)的标题为“编程练习题14_29BeanMachine”,将场景设置到舞台上并显示出来。

main方法

这是JavaFX应用的入口点,通过调用Application.launch(args)来启动应用程序。

  • 结果展示 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NFS存储、API资源对象StorageClass、Ceph存储-搭建ceph集群和Ceph存储-在k8s里使用ceph(2024-07-16)

一、NFS存储 注意&#xff1a;在做本章节示例时&#xff0c;需要拿单独一台机器来部署NFS&#xff0c;具体步骤略。NFS作为常用的网络文件系统&#xff0c;在多机之间共享文件的场景下用途广泛&#xff0c;毕竟NFS配置方 便&#xff0c;而且稳定可靠。NFS同样也有一些缺点&…

java基础学习:序列化之 - ObjectMapper

文章目录 一、介绍二、主要功能三、使用方法官网&#xff1a; 一、介绍 ObjectMapper 是 Jackson 库中的一个核心类&#xff0c;用于在 Java 对象和 JSON 数据之间进行转换。Jackson 是一个流行的 Java 库&#xff0c;用于处理 JSON 数据。它提供了灵活的方式来序列化和反序列…

Laravel Passport:API认证的瑞士军刀

Laravel Passport&#xff1a;API认证的瑞士军刀 在现代Web应用中&#xff0c;API的安全认证是一个核心问题。Laravel Passport提供了一个全面的解决方案&#xff0c;用于构建OAuth2.0认证服务器。它使得API的认证变得简单而强大&#xff0c;支持多种认证方式&#xff0c;包括…

使用Python批量压缩图片

当涉及到处理大量图片并确保它们符合特定大小要求时&#xff0c;Python 中的 PIL 库&#xff08;现在称为 Pillow&#xff09;提供了强大的工具。本文将详细介绍如何利用 Python 和 Pillow 库编写一个批量压缩图片的程序&#xff0c;以及如何将这些图片保存到指定目录中。 介绍…

Postgresql主键自增的方法

Postgresql主键自增的方法 一.方法&#xff08;一&#xff09; 使用 serial PRIMARY KEY 插入数据 二.方法&#xff08;二&#xff09; &#x1f388;边走、边悟&#x1f388;迟早会好 一.方法&#xff08;一&#xff09; 使用 serial PRIMARY KEY 建表语句如下&#xf…

什么是变量提升

文章目录 发现宝藏变量提升的定义变量提升的类型变量提升的示例函数声明提升的示例注意事项 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 变量提升&#xff08;Hoisting&…

住宅IP解析:动态住宅IP和静态住宅IP区别详解

在互联网连接的世界中&#xff0c;IP地址是我们识别和访问网络资源的关键。住宅IP地址&#xff0c;特别是动态住宅IP和静态住宅IP&#xff0c;是两种不同类型的IP分配方式&#xff0c;它们在使用和功能上存在显著差异。 1. IP地址的稳定性 动态住宅IP&#xff1a;这种IP地址是…

mysql命令练习

创建数据表grade: CREATE TABLE grade( id INT NOT NULL&#xff0c; sex CHAR(1)&#xff0c; firstname VARCHAR(20) NOT NULL&#xff0c; lastname VARCHAR(20) NOT NULL&#xff0c; english FLOAT&#xff0c; math FLOAT, chinese FLOAT )&#xff1b; 向数据表grade中插…

[职场] MARKETINGSPECIALIST是什么 #笔记#微信#知识分享

MARKETINGSPECIALIST是什么 MARKETINGSPECIALIST&#xff0c;即市场营销专员&#xff0c;他们需要具备一定的专业知识和技能&#xff0c;以适应快速变化的市场环境。接下来&#xff0c;我们将详细探讨这个职位的工作内容、必备技能以及发展前景。 一、MARKETINGSPECIALIST是什么…

lua 游戏架构 之 LoaderWallet 异步加载

定义了一个名为LoaderWallet class&#xff0c;用于管理资源加载器&#xff08;Loader&#xff09;。这个类封装了资源加载的功能&#xff0c;包括异步加载&#xff0c;以及资源的释放和状态查询。下面是对代码的详细解释&#xff1a; ### 类定义和初始化 这里定义了一个名为…

WebPack5.0 快速入门

前端工程化WebPack5️⃣ 前置知识&#xff1a; 此文章属于前端——框架进阶篇&#xff0c;需要实现掌握&#xff1a;HTMLCSSJS三件套、Node... &#x1f600;推荐分享一波个人Blog文档&#xff1a; JavaScript、前端工程\模块化、邂逅Node.JS的那一夜 什么是WebPack❓ Web…

QT CNA上位机报错 解决方案

QT编译报错: -lControlCAN 解决方案 更换三个文件&#xff0c;即可解决(QT 自带的是32位库&#xff0c;应使用64位库文件)

windows下使用#include <nlohmann/json.hpp>

1.下载并解压&#xff1a;首先&#xff0c;需要从nlohmann/json的GitHub仓库下载源代码&#xff0c;并解压得到的文件。 地址&#xff1a; nlohmann/json: JSON for Modern C (github.com) https://github.com/nlohmann/json/tree/develop 2.拷贝头文件&#xff1a;解压后&a…

Kafka Producer之数据重复和乱序问题

文章目录 1. 数据重复2. 数据乱序 为了可靠性&#xff0c;Kafka有消息重试机制&#xff0c;但是同时也带来了2大问题 1. 数据重复 消息发送到broker后&#xff0c;broker记录消息数据到log中&#xff0c;但是由于网络问题&#xff0c;producer没有收到acks&#xff0c;于是再次…

【机器学习实战】Datawhale夏令营2:深度学习回顾

#DataWhale夏令营 #ai夏令营 文章目录 1. 深度学习的定义1.1 深度学习&#xff06;图神经网络1.2 机器学习和深度学习的关系 2. 深度学习的训练流程2.1 数学基础2.1.1 梯度下降法基本原理数学表达步骤学习率 α梯度下降的变体 2.1.2 神经网络与矩阵网络结构表示前向传播激活函数…

mysql如何排查死锁问题

MySQL默认的处理方式是自动检测到死锁后&#xff0c;其中一个事务会被选择为"牺牲者"并回滚&#xff0c;以解除死锁。被选择的事务会收到一个Deadlock Detected异常&#xff0c;然后回滚该事务&#xff0c;释放相关的资源&#xff0c;允许其他事务继续执行。 MySQL使…

Three.js 实战【2】—— 船模型海上场景渲染

停止了好久没有更新three这方面的文章了&#xff0c;从上两年还是vue2&#xff0c;一下子都换到vue3了&#xff0c;下面这些three都是基于vue3来进行开发的哈&#xff0c;先看一下这篇文章实现的效果哈。其中关于模型什么的资源都放在Git上了 初始化场景 安装three就直接通过n…

springboot系列十: 自定义转换器,处理JSON,内容协商

文章目录 自定义转换器基本介绍应用实例查看源码注意事项和细节 处理JSON需求说明应用实例 内容协商基本介绍应用实例debug源码优先返回xml注意事项和细节 ⬅️ 上一篇: springboot系列九: 接收参数相关注解 &#x1f389; 欢迎来到 springboot系列十: 自定义转换器&#xff0c…

ssh远程登录另一台linux电脑

大部分的博客内容所说的安装好ssh服务后&#xff0c;terminal输入 ssh -p port_number clientnameserver_ip 之后输入密码等等就可以登上别人的电脑 但是这是有一个前提的&#xff0c;就是这两台电脑要在同一个局域网下面。 如果很远呢&#xff1f; 远到不在同一个网下面怎么办…

1.JavaWeb开发简介(Tomcat安装使用+Servlet简介)

文章目录 一.web开发简介1.概念:2.特点:3.常用技术:4.服务架构5.web应用开发模式6.HTTP协议1)概念:2)HTTP最基本的过程是:3)IP/域名4)HTTP协议请求方式 7.JavaWeb的相关技术8.Java Web服务器 二、安装配置Tomcat1.简介2.Tomcat目录结构 三.Servlet的入门应用1.使用步骤2.使用注…