Java3D を使用して 3d モデルのプレビューを表示する GUI に取り組んでいます。複数のプレビューを読み込んでそれらを切り替えることができるように、各タブが Canvas3D である JTabbedPane があります。タブを削除する機能を追加するまで、これはうまく機能していました。タブが削除されると、ほとんどの場合、残りのタブは 3D モデルのレンダリングを停止しますが、意図したとおりに機能し続けることはめったにありません。タブがいつ機能し続け、いつ機能しなくなるかを判断できる明確な条件はありません。ただし、新しいプレビューをロードすると、他のすべてのタブが元に戻ります.
私が試したこと:
- JTabbedPane で検証を呼び出す
- JTabbedPane で無効化を呼び出してから検証する
- 現在選択されている新しい Canvas3D タブで無効化/検証を呼び出す
- Canvas3D、JTabbedPane などで repaint() を呼び出す。
- Canvas3D にアタッチされた View オブジェクトで stopView() startView() を呼び出す
isViewRunning() を呼び出すと、そうではないように見えても true が返されるため、この問題の完全に間違った場所を探している可能性があります。これについての考えは非常に高く評価されます。