Ska*_*rsh 2 java junit javafx canvas graphicscontext
我正在使用 JavaFx 制作一个轻量级绘画应用程序。我的LayerController类及其方法addLayer等一直存在一些问题。所以我认为编写一些 JUunit 测试用例是检查我的方法的正确性的好主意。简而言之,我正在一个自制的类中Canvas使用它GraphicsContext,我称之为PaintGraphics。这个班级负责所有的绘画工作。需要LayerControlleraPaintGraphics在各层上完成其工作。GraphicsContext但当我在测试用例中启动时,似乎出了问题。我收到错误“内部图形尚未初始化。”。我猜这与有关,GraphicsContext但我不确定。任何有关错误发生原因以及解决方法的想法将不胜感激!
测试的源代码如下所示:
package view;
import static org.junit.Assert.*;
import java.util.ArrayList;
import org.junit.Test;
import controller.LayerController;
import javafx.scene.canvas.Canvas;
import javafx.scene.layout.AnchorPane;
import model.Layer;
import model.PaintGraphics;
public class LayoutControllerTest {
Layer layer = new Layer(0, new Canvas(100,100));
ArrayList<Layer> layers = new ArrayList<Layer>();
PaintGraphics pGraphics = new PaintGraphics(layer.getCanvas().getGraphicsContext2D());
LayerController layerController;
@Test
public void addLayerTest() {
layers.add(layer);
layerController.addLayer(layer, (AnchorPane)layer.getCanvas().getParent());
}
}
Run Code Online (Sandbox Code Playgroud)
异常“内部图形尚未初始化”。当 JavaFX 要求在使用某些功能(例如 )之前首先初始化 JavaFX 平台时,通常会抛出此异常Canvas。解决该问题的方法如下:
Application在后台线程中扩展并启动它,以便 JavaFX 应用程序线程可以正确初始化,同时您不会阻塞测试线程。| 归档时间: |
|
| 查看次数: |
5429 次 |
| 最近记录: |