无法在root / JavaFX上使用getChildren()

时间:2018-07-19 07:21:50

标签: java javafx

我正在尝试制作一个简单的hello world应用程序,并试图将画布添加到我的根目录中。我曾经只是做:     root.getChildren()。add(canvas); 但这是行不通的,我的根突然有一个getChildren方法,我也不知道为什么。我们将非常感谢您提供一些有关如何解决此问题的帮助,否则将如何解决此问题。 我的代码:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));

        // Create canvas (Thing that you can draw on)
        Canvas canvas = new Canvas(300,275);
        // Add canvas to root
        root.getChildren().add(canvas);

        // Set Graphicscontect ie. the thing used to draw on a canvas
        GraphicsContext gc = canvas.getGraphicsContext2D();

        // Draw hello world and a globe
        gc.setFill(Color.RED);
        gc.setStroke(Color.BLACK);
        gc.setLineWidth(2);
        Font font = Font.font("Times New Roman", FontWeight.BOLD, 48);
        gc.fillText("Hello World!", 60, 50);
        gc.strokeText("Hello World", 60, 50);

        // Show stage
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

0 个答案:

没有答案