无法在main.java(JavaFX)中添加Canvas



我正在使用JavaFX,并试图在根目录中添加一个画布。以下是代码:

public void start(Stage stage) throws Exception {
//Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
//Scene scene = new Scene(root);
stage.setTitle("Hello, World!");
Group root=new Group();
Scene scene=new Scene(root,300,300,Color.BLACK);
stage.setScene(scene);
final Canvas canvas = new Canvas(100,100);
root.getChildren().add( canvas );
//GraphicsContext gc = canvas.getGraphicsContext2D();
//root.getChildren().add( canvas );
stage.show();
}

我遇到一个错误:找不到适合Canvas(int,int(的构造函数(实际参数列表和形式参数列表的长度不同(。根据官方网站,这正是我们添加画布的方式,然而这个错误。我在网上找不到任何解决方案,请帮我。我已经导入了以下文件:

import java.awt.Canvas;
import java.awt.Graphics;
import javafx.scene.canvas.*;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.io.File;
import java.io.FileInputStream;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Label;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
import javafx.scene.*;
import javafx.scene.paint.*;

确保Canvas的类型来自javafx.scene.canvas命名空间,而不是来自java.awt命名空间

您使用的不是JavaFX画布,而是java.awt.Canvas,它没有带有两个int值的构造函数。

尝试删除java.awt.Canvas导入。

最新更新