【问题标题】:Canvas3D Tabs Stop Rendering Correctly When Tab Removed from JTabbedPane当从 JTabbedPane 中删除选项卡时,Canvas3D 选项卡停止正确呈现
【发布时间】: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


【解决方案1】:

Canvas3D 选项卡在 6u33 或 7u5 (Win 7 64) 上运行我的应用程序时正确呈现。 在“以前”,根据解决方法提示,当标签被移除时,我在 JTabbedPane 的 ChangeListener 的顶级组件(通常是 JFrame)上调用了验证。

【讨论】:

  • 非常感谢您的帮助。解决方法允许它适用于所有情况,但奇怪的是,我删除了最后一个选项卡的情况除外。删除其他任何东西都可以按预期完美工作。
猜你喜欢
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
相关资源
最近更新 更多