javaFx画路线图

package cn.hsa.tps;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;

public class CircleExample extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        // 创建一个多边形对象
        Polygon polygon = new Polygon();

        // 设置多边形的顶点
        polygon.getPoints().addAll(new Double[]{
                100.0, 50.0,
                150.0, 10.0,
                200.0, 50.0,
                250.0, 150.0,
                150.0, 200.0});

        // 填充颜色
        polygon.setFill(Color.YELLOW);

        // 创建一个布局来放置圆
        StackPane root = new StackPane();
        root.getChildren().add(polygon);

        // 创建场景并显示
        Scene scene = new Scene(root, 200, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
package cn.hsa.tps;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class DrawingBoard extends Application {

    private double startX, startY, endX, endY;
    private GraphicsContext gc;

    @Override
    public void start(Stage primaryStage) {
        // 创建画布
        Canvas canvas = new Canvas(800, 600);
        gc = canvas.getGraphicsContext2D();
        gc.setStroke(Color.BLACK);
        gc.setLineWidth(1);

        // 创建布局面板
        BorderPane root = new BorderPane(canvas);

        // 添加事件处理程序
        canvas.setOnMousePressed(this::onMousePressed);
        canvas.setOnMouseDragged(this::onMouseDragged);
        canvas.setOnMouseReleased(this::onMouseReleased);

        // 显示场景
        Scene scene = new Scene(root, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void onMousePressed(MouseEvent event) {
        startX = event.getX();
        startY = event.getY();
    }

    private void onMouseDragged(MouseEvent event) {
        endX = event.getX();
        endY = event.getY();

        gc.beginPath();
        gc.moveTo(startX, startY);
        gc.lineTo(endX, endY);
        gc.stroke();

        startX = endX;
        startY = endY;
    }

    private void onMouseReleased(MouseEvent event) {
        endX = event.getX();
        endY = event.getY();

        gc.beginPath();
        gc.moveTo(startX, startY);
        gc.lineTo(endX, endY);
        gc.stroke();

        gc.closePath();
        gc.setFill(Color.RED);
        gc.fill();

        startX = endX;
        startY = endY;
    }

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaFXJava平台上的GUI工具包,它提供了创建丰富、高度交互式的用户界面的能力。JavaFX还提供了许多动效果,可以使您的应用程序更加生动和具有吸引力。 以下是一个简单的JavaFX示例,它使用TranslateTransition类在一个矩形上实现平移效果: ```java import javafx.animation.TranslateTransition; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.util.Duration; public class MyAnimation extends Application { @Override public void start(Stage primaryStage) throws Exception { Group root = new Group(); Scene scene = new Scene(root, 400, 400, Color.WHITE); Rectangle rect = new Rectangle(100, 100, 100, 100); rect.setFill(Color.BLUE); TranslateTransition translate = new TranslateTransition(Duration.millis(2000), rect); translate.setToX(200); translate.setAutoReverse(true); translate.setCycleCount(TranslateTransition.INDEFINITE); root.getChildren().add(rect); primaryStage.setScene(scene); primaryStage.show(); translate.play(); } public static void main(String[] args) { launch(args); } } ``` 在此示例中,我们首先创建一个Group和一个Scene,然后创建一个蓝色矩形,并使用TranslateTransition将其向右移动200个像素。动持续时间为2秒,并且设置为自动反转和无限循环。 最后,我们将矩形添加到Group中,并将Scene设置为主要舞台。最后,我们将动启动并显示主要舞台。 您可以使用JavaFX提供的其他动类来创建各种动效果,包括缩放、旋转、淡入淡出等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值