我在包含画布对象的SceneBuilder中创建了场景。现在,我尝试在画布上绘制任何内容,但没有任何显示。也许有人可以告诉我我在做什么错。感谢您的建议。

这是画布对象的声明:

public class ApplicationControler implements Initializable {

  @FXML
    public Canvas artHorizon;


以及应该在上面绘制内容的方法:

public void drawOval(){
    artHorizon = new Canvas(400, 400);
    GraphicsContext gc = artHorizon.getGraphicsContext2D();

    gc.setFill(Color.DARKRED);
    gc.fillOval(110, 30, 50, 50);
}


和主类:

public class Main extends Application {

@Override
public void start(Stage stage) throws Exception {

    FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/application/MainPane.fxml"));
    Parent parent = fxmlLoader.load();
    Scene scene = new Scene(parent);


    stage.setScene(scene);
    stage.setTitle("Login Page");
    stage.show();

    ApplicationControler controller = fxmlLoader.getController();
    controller.drawOval();

}

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


}

最佳答案

我认为您应该删除:

artHorizon = new Canvas(400, 400);


查看您是否可以执行以下操作:

artHorizon.setHeight(400);
artHorizon.setWidth(400);

09-10 09:00
查看更多