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

目录

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

习题思路

代码示例

输出结果


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

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

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

编程练习题18_20DisplayMultipleCircles.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;
	
	@Override
	public 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);
	}
}
  • 输出结果

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值