我有一个奇怪的问题。有人能告诉我为什么我的虚空“画”会进入无限循环。我检查过,当this.setURI(fi.toURL().toString())
/ try
包围catch
时,它才会无限。当我启动程序时,它会一直打印svinja
,直到我关闭它(这是我对无限循环的测试);我是初学者,想要最简单的解决方案。 [:提前致谢。
P.S。我有所有必要的库,所以这不是问题。
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();
}
}
}
答案 0 :(得分:4)
this.setURI
最有可能导致paint
被调用。这是因为它需要在加载新模型后重新绘制。解决方案是setURI
来自paint
。它不属于那里。