第十四章第二十九题
-
**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)
来启动应用程序。
- 结果展示