Java 在对象中存储画布?

Java 在对象中存储画布?,java,canvas,javafx,Java,Canvas,Javafx,我编写了一个类,负责保存画布及其graphicsContext2d对象。 但是,当我想将画布对象添加到场景中时,它不起作用 为什么这段代码的工作方式与注释过的代码不一样? 该对象只是存储在其他地方,或者我缺少什么 //编辑2: 问题是tab1.getHeight返回0.0 //编辑: 这很有效,但为什么??我只是在画布外创建对象,而不是在其中 @FXML public void initialize() { Canvas canvas = new Canvas(500, 500);

我编写了一个类,负责保存画布及其graphicsContext2d对象。 但是,当我想将画布对象添加到场景中时,它不起作用

为什么这段代码的工作方式与注释过的代码不一样? 该对象只是存储在其他地方,或者我缺少什么

//编辑2:

问题是tab1.getHeight返回0.0

//编辑:

这很有效,但为什么??我只是在画布外创建对象,而不是在其中

@FXML
public void initialize() {
    Canvas canvas = new Canvas(500, 500);
    CanvasScreen screen = new CanvasScreen(canvas, tab1.getHeight(), tab1.getWidth());
    screen.getContext().setStroke(Color.BLUE);
    screen.getContext().setLineWidth(5);
    screen.getContext().strokeLine(40, 10, 10, 40);


    tab1.getChildren().add(screen.getCanvas());
}
//旧的:

@FXML
public void initialize() {
    CanvasScreen screen = new CanvasScreen(tab1.getHeight(), tab1.getWidth());
    screen.getContext().setStroke(Color.BLUE);
    screen.getContext().setLineWidth(5);
    screen.getContext().strokeLine(40, 10, 10, 40);

//  Canvas canvas = new Canvas(500, 500);
//  canvas.getGraphicsContext2D().setStroke(Color.BLUE);
//  canvas.getGraphicsContext2D().setLineWidth(5);
//  canvas.getGraphicsContext2D().strokeLine(40, 10, 10, 40);

    tab1.getChildren().add(screen.getCanvas());
}

你能给我看看你的画布课吗?很抱歉,问题出在tab1.getHeight上,它在任何时候都是0.0。。。