0
点赞
收藏
分享

微信扫一扫

javafx画房子

AbrahamW 2023-09-06 阅读 43

JavaFX画房子

JavaFX是一种用于构建富客户端应用程序的Java库。它提供了丰富的图形化界面组件和功能,可以用于创建各种类型的应用程序,包括画图应用程序。本文将介绍如何使用JavaFX库来画一个简单的房子,并展示如何使用序列图和饼状图来说明代码的执行过程。

准备工作

首先,我们需要确保已经安装了Java Development Kit(JDK)和JavaFX库。如果还没有安装,请参考相关文档进行安装配置。

创建JavaFX应用程序

首先,我们需要创建一个JavaFX应用程序的基本结构。新建一个Java类,命名为"HouseDrawingApp"。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class HouseDrawingApp extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        Pane root = new Pane();
        Scene scene = new Scene(root, 800, 600);
        
        primaryStage.setTitle("House Drawing App");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上面的代码中,我们创建了一个继承自Application类的HouseDrawingApp类,并重写了start方法。在start方法中,我们创建了一个Pane容器作为根节点,并创建了一个Scene场景,并将场景设置到主舞台上。

画房子

下面我们开始编写画房子的代码。在start方法中,我们调用一个新的方法drawHouse来画房子。

public void drawHouse(Pane root) {
    // 画墙
    Rectangle wall = new Rectangle(400, 300);
    wall.setFill(Color.LIGHTGRAY);
    wall.setStroke(Color.BLACK);
    wall.setStrokeWidth(2);
    root.getChildren().add(wall);
    
    // 画屋顶
    Polygon roof = new Polygon();
    roof.getPoints().addAll(
            200.0, 0.0,
            600.0, 0.0,
            400.0, -200.0
    );
    roof.setFill(Color.RED);
    roof.setStroke(Color.BLACK);
    roof.setStrokeWidth(2);
    root.getChildren().add(roof);
    
    // 画窗户
    Rectangle window = new Rectangle(100, 100);
    window.setFill(Color.WHITE);
    window.setStroke(Color.BLACK);
    window.setStrokeWidth(2);
    window.setTranslateX(150);
    window.setTranslateY(150);
    root.getChildren().add(window);
    
    // 画门
    Rectangle door = new Rectangle(120, 200);
    door.setFill(Color.BROWN);
    door.setStroke(Color.BLACK);
    door.setStrokeWidth(2);
    door.setTranslateX(340);
    door.setTranslateY(300);
    root.getChildren().add(door);
}

在上面的代码中,我们创建了一个矩形对象表示墙体,一个多边形对象表示屋顶,一个矩形对象表示窗户,一个矩形对象表示门。然后,我们将这些对象添加到Pane容器中。

start方法中,我们调用drawHouse方法,并将root作为参数传递进去。

@Override
public void start(Stage primaryStage) {
    Pane root = new Pane();
    Scene scene = new Scene(root, 800, 600);
    
    drawHouse(root);
    
    primaryStage.setTitle("House Drawing App");
    primaryStage.setScene(scene);
    primaryStage.show();
}

运行应用程序,你将看到一个简单的房子被画出来。

序列图

为了更好地理解代码的执行过程,我们可以使用序列图来说明。下面是使用mermaid语法绘制的序列图:

sequenceDiagram
    participant App
    participant Pane
    participant Scene
    participant Stage
    participant Rectangle
    participant Polygon
    
    App->>+Stage: 创建主舞台
    Stage-->>-App: 返回主舞台
    
    App->>+Pane: 创建根容器
    Pane-->>-App: 返回根容器
    
    App->>+Rectangle: 创建墙体矩形
    Rectangle-->>-App: 返回墙体矩形
    
    App->>+Polygon: 创建屋顶多边形
    Polygon-->>-App: 返回屋顶多边形
    
    App->>+Rectangle: 创建窗户矩形
    Rectangle-->>
举报

相关推荐

0 条评论