gpt4 book ai didi

JavaFX Canvas - 绘制后如何重新绘制 Canvas ?

转载 作者:行者123 更新时间:2023-12-01 11:18:54 26 4
gpt4 key购买 nike

我编写了这段代码,可以在 JavaFX Canvas 上绘画。它工作正常,但我不知道如何重新绘制(就像在 Swing 中) Canvas 以重新开始在新 Canvas 上绘画。这是我的代码,非常感谢您的帮助!马里奥

public class Main extends Application {

private static final int WIDTH = 600;
private static final int HEIGTH = 400;

@Override
public void start(Stage primaryStage) {
//handling the canvas
final Canvas canvas = new Canvas(WIDTH, HEIGTH);
final GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.AQUA);
gc.fill();
//Painting with MouseDragged Event
canvas.setOnMouseDragged(event -> gc.fillOval(event.getX(), event.getY(), 25, 25));
//User a ColorPicke for Color of Painting
ColorPicker cp = new ColorPicker();
cp.setOnAction(e -> gc.setFill(cp.getValue()));
//Layout
BorderPane root = new BorderPane();
HBox hb = new HBox(30);
Button button = new Button("Clear all");

button.setOnAction(e ->
/*how to repaint the canvas*/
System.out.println("How to repaint???"));

hb.getChildren().addAll(cp, button);
hb.setPrefHeight(200);
hb.setAlignment(Pos.CENTER);
root.setCenter(canvas);
root.setBottom(hb);
final Scene scene = new Scene(root);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}

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

最佳答案

通过清除 Canvas :

button.setOnAction(e ->
gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight()));

关于JavaFX Canvas - 绘制后如何重新绘制 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com