Невозможно добавить Canvas в main. java (JavaFX) - PullRequest
0 голосов
/ 10 марта 2020

Я работаю с JavaFX и пытаюсь добавить холст к root. Ниже приведен код:

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.*;

Ответы [ 2 ]

3 голосов
/ 10 марта 2020

Убедитесь, что тип Canvas относится к пространству имен javafx.scene.canvas, а не к пространству имен java.awt

1 голос
/ 10 марта 2020

Вы используете не холст JavaFX, а java.awt.Canvas, в котором нет конструктора с двумя значениями типа int.

Попробуйте удалить java.awt.Canvas.

...