Java3D - 如何处置?

时间:2014-12-08 15:26:40

标签: java

我有一个创建Java3D(1.5.2)Canvas3D的Java类,添加了一些东西,稍微旋转它然后将其保存为图像 - 而不是在JFrame或类似物中实际显示Canvas3D。该部分工作正常,基于Java3D print_canvas3d示例。

不幸的是,整个事情似乎有麻烦清理,因为我看到两个症状:

a)保存图像后,应该完成应用程序,但不会退出。调用System.exit(0)确实解决了这个问题,但由于该类稍后将在应用程序服务器中使用,因此这不是解决方案。

b)保存第一个图像后,尝试创建第二个图像(通过创建新的Canvas3D等)阻止GraphicsConfiguration.getDevice()上的整个应用程序(如果通过存储设备来解决这个问题)在静态成员中,在类似的地方)。

因此,以某种方式清理Java3D代码似乎缺乏一些非常重要的东西。不幸的是,我似乎无法找到......

我尝试了 [here]给出的解决方案,尝试了SimpleUniverse.cleanUp,SimpleUniverse.getViewer.getView.attachViewPlatform(null)等内容,但似乎没有任何改变。我找到的唯一解决方法是将代码放在守护程序线程中并将整个Canvas3D部分保存在静态变量中,但老实说,这看起来更像是一团糟而不是解决方案。不幸的是,我没有时间在JOGL或类似的地方重写整个事情,我也不能简单地创建一个外部应用程序来编写图像并退出每个调用...所以我需要知道如何正确地做到这一点。

我的问题很简单:如何在没有System.exiting的情况下正确清理Java3D应用程序?

此致

弗洛

0 个答案:

没有答案