如何让蜡染在背景中启动GVT渲染?

时间:2013-01-09 11:11:33

标签: java swing svg batik

我正在尝试让我的应用程序在应用程序启动时渲染所有SVG图像,然后显示主框架。当我启动我的应用程序时,它会加载几个SVG图像。不幸的是,目前它显示空白帧然后渲染图像。

我想替换:

MyCustomFrameWithSVG frame = new MyCustomFrameWithSVG();
frame.setVisible(true);

有这样的事情:

MyCustomFrameWithSVG frame = new MyCustomFrameWithSVG();
Renderer renderer = new Renderer(30, frame);

public class Renderer extends GVTTreeRendererAdapter {

    int svgCanvasToLoad;
    MyCustomFrameWithSVG frame;

    public Renderer(int svgCanvasToLoad, MyCustomFrameWithSVG frame) {
        this.svgCanvasToLoad = svgCanvasToLoad;
        this.frame = frame;
    }

    @Override
    public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
        --svgCanvasToLoad;

        if (svgCanvasToLoad == 0) {
            frame.setVisible(true);
        }
    }
}

如果我这样做,后面的代码会起作用:

frame.setVisible(true);
frame.setVisible(false);

但我不想这样做。 如果我没有显示框架,SVG组件将不会开始渲染。

任何想法如何'正确'?

0 个答案:

没有答案