Java 显示SVG时出现无限循环,发现问题,可以';解决不了

Java 显示SVG时出现无限循环,发现问题,可以';解决不了,java,svg,paint,infinite-loop,Java,Svg,Paint,Infinite Loop,我有一个奇怪的问题。有人能告诉我为什么我的虚空“绘画”会进入一个无限循环吗。我检查了,只有当有这个.setURI(fi.toURL().toString())被try/catch包围时,它才会无限大。当我启动程序时,它一直打印svinja,直到我关闭它(这是我对无限循环的测试);我是一个初学者,想要最简单的解决方案。[:提前谢谢 p、 我有所有必要的图书馆,所以这不是问题 public class SVG_class extends JSVGCanvas { @Override

我有一个奇怪的问题。有人能告诉我为什么我的虚空“绘画”会进入一个无限循环吗。我检查了,只有当有
这个.setURI(fi.toURL().toString())
try
/
catch
包围时,它才会无限大。当我启动程序时,它一直打印
svinja
,直到我关闭它(这是我对无限循环的测试);我是一个初学者,想要最简单的解决方案。[:提前谢谢

p、 我有所有必要的图书馆,所以这不是问题

public class SVG_class extends JSVGCanvas {

    @Override
    public void paint(Graphics g) {

        System.out.println("svinja");

        super.paint(g);

        File fi = new File("C:\\Users\\Gigabyte\\Desktop\\SVG\\map1.svg");

        try {
            this.setURI(fi.toURL().toString());
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

最有可能的是
this.setURI
导致调用
paint
。这是因为加载新模型后需要重新绘制。解决方案是将
setURI
调用从
paint
中取出。它不属于那里。

this.setURI
最有可能导致
paint
被调用。这是因为它在加载新模型后需要重新绘制。解决方案是将
setURI
调用从
paint
中取出。它不属于那里。

删除super.paint(g);?我们可以看到调用您的绘制方法的代码吗?删除super.paint(g)时会发生什么?我们能看到调用你的绘画方法的代码吗?非常感谢。我移动了它,它工作了:我从来没有想过会是它。再次感谢。@Andy如果他的答案对你有帮助,请接受答案,以便其他人可以像你一样从中学习。非常感谢。我移动了它,它工作了:我从来没有想过会是它。谢谢再说一遍。@Andy如果他的答案对你有帮助,请接受这个答案,这样其他人就可以像你一样从中学习。