📜  JavaFX |帆布类

📅  最后修改于: 2022-05-13 01:55:48.553000             🧑  作者: Mango

JavaFX |帆布类

Canvas 类是 JavaFX 的一部分。 Canvas 类基本上创建了一个可以使用 GraphicsContext 提供的一组图形命令绘制的图像。画布具有指定的高度和宽度,所有绘图操作都被裁剪到画布的边界。

类的构造函数:

  1. Canvas() :创建一个新的画布对象。
  2. Canvas(double w, double h) :创建一个具有指定宽度和高度的新画布对象。

常用方法:

MethodExplanation
getGraphicsContext2D()Returns the graphics context associated with the canvas.
getHeight()Returns the height of the canvas.
getWidth()Returns the width of the canvas.
setHeight(double v)Sets the height of the canvas.
setWidth(double d)Sets the width of the canvas.

下面的程序说明了 Canvas 类的使用:

  1. Java程序创建具有指定宽度和高度的画布(作为构造函数的参数),将其添加到舞台上,并在其上添加圆形和矩形:在此程序中,我们将创建一个名为canvas的具有指定宽度和高度的 Canvas。我们将使用getGraphicsContext2D()函数提取GraphicsContext并绘制一个矩形和一个不同颜色的椭圆。现在我们将创建一个名为group的 Group 并将画布添加到该组中。现在创建一个场景并将组添加到场景中,然后将场景附加到舞台并调用show()函数以显示结果。
    // Java Program to create a canvas with specified
    // width and height(as arguments of constructor),
    // add it to the stage and also add a circle and
    // rectangle on it
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.canvas.*;
    import javafx.scene.paint.Color;
    import javafx.scene.Group;
      
    public class canvas extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            // set title for the stage
            stage.setTitle("creating canvas");
      
            // create a canvas
            Canvas canvas = new Canvas(100.0f, 100.0f);
      
            // graphics context
            GraphicsContext graphics_context = 
                 canvas.getGraphicsContext2D();
      
            // set fill for rectangle
            graphics_context.setFill(Color.RED);
            graphics_context.fillRect(20, 20, 70, 70);
      
            // set fill for oval
            graphics_context.setFill(Color.BLUE);
            graphics_context.fillOval(30, 30, 70, 70);
      
            // create a Group
            Group group = new Group(canvas);
      
            // create a scene
            Scene scene = new Scene(group, 200, 200);
      
            // set the scene
            stage.setScene(scene);
      
            stage.show();
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }
    

    输出:

  2. Java程序创建画布并使用 setHeight() 和 setWidth()函数设置画布大小并将其添加到舞台上,并在其上添加圆形和矩形:在此程序中,我们将创建一个名为canvas的画布并设置宽度和使用setWidth()setHeight()函数的高度。我们将使用getGraphicsContext2D()函数提取 GraphicsContext 并绘制两个矩形和一个不同颜色的椭圆。我们将创建一个名为group的 Group 并将画布添加到该组。我们将创建一个场景并将组添加到场景中,然后将场景附加到舞台上。最后,调用show()函数来显示结果。
    // Java Program to create a canvas and use 
    // setHeight() and setWidth() function to
    // set canvas size and add it to the stage
    // and also add a circle and rectangle on it
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.canvas.*;
    import javafx.scene.paint.Color;
    import javafx.scene.Group;
      
    public class canvas1 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            // set title for the stage
            stage.setTitle("creating canvas");
      
            // create a canvas
            Canvas canvas = new Canvas();
      
            // set height and width
            canvas.setHeight(400);
            canvas.setWidth(400);
      
            // graphics context
            GraphicsContext graphics_context = 
                canvas.getGraphicsContext2D();
      
            // set fill for rectangle
            graphics_context.setFill(Color.PINK);
            graphics_context.fillRect(40, 40, 100, 100);
      
            // set fill for rectangle
            graphics_context.setFill(Color.RED);
            graphics_context.fillRect(20, 20, 70, 70);
      
            // set fill for oval
            graphics_context.setFill(Color.BLUE);
            graphics_context.fillOval(30, 30, 70, 70);
      
            // create a Group
            Group group = new Group(canvas);
      
            // create a scene
            Scene scene = new Scene(group, 400, 400);
      
            // set the scene
            stage.setScene(scene);
      
            stage.show();
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }
    

    输出:

    注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。

    参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/canvas/Canvas.html