Java语言程序设计基础篇_编程练习题*18.20 (显示多个圆)

news/2024/12/22 14:47:23/

目录

题目:*18.20 (显示多个圆)

习题思路

代码示例

输出结果


题目:*18.20 (显示多个圆)

编写一个Java程序显示多个圆,如图18-12b所示。这些圆都处于面板的中心位置。两个相邻圆之间相距10像素,面板和最大圆之间也相距10像素。

  • 习题思路
  1. 定义一个面板StackPane,
  2. 定义一个绘制圆的方法
    1. 新建一个圆。
    2. 判断面板的宽度减去圆的直径是否大于等于20,如果是则将圆添加到面板中,并将半径增加10,递归调用绘制方法。
  • 代码示例

编程练习题18_20DisplayMultipleCircles.java

java">package chapter_18;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;public class 编程练习题18_20DisplayMultipleCircles extends Application{private static int radius = 5;private static int spacing = 10;@Overridepublic void start(Stage primaryStage) throws Exception {StackPane stackPane = new StackPane();Scene scene = new Scene(stackPane,500,500);drawCircle(stackPane);//drawCirlcey方法的调用需要在Scene定义长宽度之后primaryStage.setTitle("编程练习题18_20DisplayMultipleCircles");primaryStage.setScene(scene);primaryStage.show();}public void drawCircle(StackPane stackPane) {Circle circle = new Circle(radius);if(stackPane.getWidth()-circle.getRadius()*2 >= 20) {circle.setFill(Color.TRANSPARENT);circle.setStroke(Color.BLACK);stackPane.getChildren().add(circle);radius += spacing;drawCircle(stackPane);}}public static void main(String[] args) {Application.launch(args);}
}
  • 输出结果


http://www.ppmy.cn/news/1524372.html

相关文章

Centos7 Hadoop 单机版安装教程(图文)

本章教程,主要记录如何在Centos7中安装Hadoop单机版。 一、软件安装包和基础环境 CentOS7.x,jdk8,hadoop 通过网盘分享的文件:Hadoop 链接: https://pan.baidu.com/s/1_qGI9QeXMAJNb3TydHhQGA?pwd=xnz4 提取码: xnz4 当然你也可以自己去官网下载。 java8:https://www.ora…

黑马点评22——最佳实践-批处理优化

文章目录 pipeline和mset集群模式下的批处理问题 pipeline和mset pipeline就是大数据量的导入,pipeline是在单机模式下的。 redis的处理耗时相比较网络传输的耗时其实是比较低的。 所以我们最好采用批处理, 集群模式下的批处理问题 在集群环境…

redis基本数据类型和常见命令

引言 Redis是典型的key-value(键值型)数据库,key一般是字符串,而value包含很多不同的数据类型: Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( Commands | Do…

Mysql树形结构表-查询所有子集数据

表结构,这里只是个例子,所有的树形结构表均可用: CREATE TABLE zhkt_course_chapter (id bigint NOT NULL COMMENT 唯一id,course_id bigint NOT NULL COMMENT 所属课程id,name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general…

最新版微服务项目搭建

一,项目总体介绍 在本项目中,我将使用alibabba的 nacos 作为项目的注册中心,使用 spring cloud gateway 做为项目的网关,用 openfeign 作为服务间的调用组件。 项目总体架构图如下: 注意:我的Java环境是17…

如何区分html和html5

HTML与HTML5在多个方面存在显著的区别。以下是对这些区别的详细分析: 1. 概念区别 HTML:HTML是HyperText Markup Language(超文本标记语言)的缩写,是一种用于创建网页和网页应用程序的标准标记语言。它通过一系列的标…

C++20那些事之何时使用可能性属性?

C20 引入了 [[likely]] 和 [[unlikely]] 这两个可能性属性,它们会给编译器优化提示,表示对应代码路径可能/不可能被执行。 乍一看,这似乎是一组很不错的属性,通过编译器优化,从而提高性能。但是事实并不是如此。 在C 标…

自动化立体仓库定义及使用范围

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 这份文件是关于自动化立体仓库的定义、发展、组成、技术性能、应用领域、供货方式以及设计步骤的详细介绍。以下是核心内容的概要&#…