【发布时间】:2012-07-03 21:57:27
【问题描述】:
我正在开发一个使用 Java3D 来显示 3d 模型预览的 GUI。我有一个 JTabbedPane,其中每个选项卡都是 Canvas3D,以允许加载多个预览并在它们之间切换。在我开始添加删除标签的功能之前,这一直运行良好。当一个选项卡被移除时,大部分时间,剩余的选项卡会停止渲染 3d 模型,而很少会继续按预期工作。没有一组明显的条件可以确定选项卡何时继续工作以及何时不继续工作。但是,加载新的预览将使所有其他标签恢复生机。
我尝试过的事情:
- 在 JTabbedPane 上调用验证
- 在 JTabbedPane 上调用 invalidate 然后验证
- 在当前选择的新 Canvas3D 选项卡上调用无效/验证
- 在 Canvas3D、JTabbedPane 等上调用 repaint()。
- 在附加到 Canvas3D 的 View 对象上调用 stopView() startView()
调用 isViewRunning() 会返回 true,即使它看起来不是,所以也许我正在寻找完全错误的地方来解决这个问题。对此的任何想法将不胜感激。
【问题讨论】:
-
如需更好的帮助,请尽快发帖SSCCE
-
短语大部分时间可能会提示检查correct synchronization。
-
@mKorbel 感谢您的提示。为此建立一个 SSCCE 似乎花费的时间比它的价值要多。只是希望有些人遇到类似的问题。
-
@trashgod 谢谢,我正在调查。看起来这可能是一个很有希望的领先优势。
标签: java swing awt java-3d jtabbedpane