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