1

我试图让我的应用程序在应用程序启动时呈现所有 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 组件将不会开始渲染。

任何想法如何“正确”地做到这一点?

4

0 回答 0