Java如何實(shí)現(xiàn)畫圖板功能

小億
114
2023-08-18 17:37:35
欄目: 編程語言

Java可以使用JavaFX或Swing來實(shí)現(xiàn)畫圖板功能。下面是一個(gè)簡(jiǎn)單的示例代碼,演示如何使用JavaFX實(shí)現(xiàn)一個(gè)簡(jiǎn)單的畫圖板:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class DrawingBoard extends Application {
private double startX, startY, endX, endY;
@Override
public void start(Stage primaryStage) {
Canvas canvas = new Canvas(800, 600);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setStroke(Color.BLACK);
gc.setLineWidth(1.0);
canvas.addEventHandler(MouseEvent.MOUSE_PRESSED, event -> {
if (event.getButton() == MouseButton.PRIMARY) {
startX = event.getX();
startY = event.getY();
}
});
canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED, event -> {
if (event.getButton() == MouseButton.PRIMARY) {
endX = event.getX();
endY = event.getY();
gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.strokeRect(startX, startY, endX - startX, endY - startY);
}
});
VBox root = new VBox(canvas);
Scene scene = new Scene(root, 800, 600);
primaryStage.setTitle("Drawing Board");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}

運(yùn)行這段代碼,將會(huì)彈出一個(gè)窗口,你可以在窗口內(nèi)點(diǎn)擊并拖動(dòng)鼠標(biāo)左鍵來繪制矩形。

0