javafx实现雨刷器样子
时间: 2023-11-07 19:05:01 浏览: 97
在JavaFX中,我们可以使用Canvas和GraphicsContext类来实现自定义绘图,从而实现雨刷器的样子。下面是一个简单的示例代码,可以绘制一个类似于雨刷器的圆形:
```
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class RainBrush extends Application {
private static final double BRUSH_SIZE = 50.0;
@Override
public void start(Stage primaryStage) {
Canvas canvas = new Canvas(400, 400);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.WHITE);
gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.setFill(Color.BLUE);
gc.setStroke(Color.TRANSPARENT);
gc.setLineWidth(1);
canvas.setOnMouseDragged(e -> {
double x = e.getX();
double y = e.getY();
gc.fillOval(x - BRUSH_SIZE / 2, y - BRUSH_SIZE / 2, BRUSH_SIZE, BRUSH_SIZE);
});
StackPane root = new StackPane(canvas);
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个示例中,我们创建了一个Canvas对象,并获取了其GraphicsContext。然后我们设置了画布的背景颜色为白色,并在画布上注册了鼠标拖动事件。当鼠标在画布上拖动时,我们使用GraphicsContext的fillOval方法绘制一个圆形,在圆形的中心点上是鼠标的坐标,半径为BRUSH_SIZE/2。这样就能实现一个简单的雨刷器效果了。
阅读全文