从JTabbedPane中删除选项卡时,Canvas3D选项卡正确停止渲染

时间:2012-07-03 21:57:28

标签: java swing awt java-3d jtabbedpane

我正在使用一个使用Java3D显示3d模型预览的GUI。我有一个JTabbedPane,其中每个选项卡都是Canvas3D,允许加载多个预览并在它们之间切换。这一直很好,直到我开始添加删除标签的功能。删除选项卡时,大部分时间,其余选项卡将停止呈现3d模型,而很少会继续按预期工作。没有明显的条件可以确定标签何时继续工作以及何时不会。但是,加载新预览会使所有其他标签恢复生机。

我尝试过的事情:

  • 在JTabbedPane上调用验证
  • 在JTabbedPane上调用invalidate然后验证
  • 在当前新选择的Canvas3D标签上调用invalidate / validate
  • 在Canvas3D,JTabbedPane等上调用repaint()
  • 在附加到Canvas3D
  • 的View对象上调用stopView()startView()

调用isViewRunning()返回true,即使它看起来不是这样也许我正在寻找这个问题的完全错误的地方。对此的任何想法都将非常感激。

1 个答案:

答案 0 :(得分:1)

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