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如果他的答案对你有帮助,请接受这个答案,这样其他人就可以像你一样从中学习。