gpt4 book ai didi

java - Batik:当我从线程调用 invokeLater 时出现 IllegalStateException

转载 作者:行者123 更新时间:2023-11-30 09:26:51 24 4
gpt4 key购买 nike

我已经在这里发布了一个类似的问题:Batik IllegalStateException when resizing the JComponent containing the JSVGCanvas .但是,我可以将问题减少到最少的代码集。也许这可以帮助别人找到我的问题。

我从线程中重复调用以下代码:

//currentComponent is a custom JComponent that contains the JSVGCanvas
if(currentComponent != null && currentComponent.getSvgCanvas().getUpdateManager() != null)
{
try
{
currentComponent.getSvgCanvas().getUpdateManager().getUpdateRunnableQueue().invokeLater(new Runnable()
{
@Override
public void run()
{
resetDocument();
}

private void resetDocument()
{
currentComponent.getSvgCanvas().setDocument(currentComponent.getSvgCanvas().getSVGDocument());
}
});
}
catch(Exception e)
{
System.out.println("Error");
e.printStackTrace();
}
}

有时我会得到以下异常:

java.lang.IllegalStateException: RunnableQueue not started or has exited
at org.apache.batik.util.RunnableQueue.invokeLater(RunnableQueue.java:277)
at java.lang.Thread.run(Unknown Source)

这是 Batik 中的错误还是我做错了什么?

最佳答案

我有类似的问题。相同的 IllegalStateException 仅在特殊用例中发生。

我的问题是我的代码是在

期间执行的
documentLoadingCompleted(SVGDocumentLoaderEvent P_event)

因为我正在执行我的代码

gvtRenderingCompleted(GVTTreeRendererEvent P_e)

一切正常。

关于java - Batik:当我从线程调用 invokeLater 时出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com