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);
}
}