我正在尝试让我的应用程序在应用程序启动时渲染所有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组件将不会开始渲染。
任何想法如何'正确'?