我试图让我的应用程序在应用程序启动时呈现所有 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 组件将不会开始渲染。
任何想法如何“正确”地做到这一点?