Я работаю над графическим интерфейсом, который использует Java3D для предварительного просмотра 3D-моделей. У меня есть JTabbedPane, в котором каждая вкладка представляет собой Canvas3D, что позволяет загружать несколько предварительных просмотров и переключаться между ними. Это работало нормально, пока я не добавил функциональность для удаления вкладок. При удалении вкладки в большинстве случаев оставшиеся вкладки перестают отображать 3D-модели, хотя редко они продолжают работать должным образом. Не существует очевидного набора условий, которые могли бы определить, когда вкладки будут продолжать работать, а когда нет. Однако загрузка нового предварительного просмотра вернет к жизни все остальные вкладки.
Что я пробовал:
- Вызов проверки на JTabbedPane
- Вызов недействительного на JTabbedPane, а затем проверка
- Вызов недействительности/валидации на новой выбранной в данный момент вкладке Canvas3D
- Вызов repaint() для Canvas3D, JTabbedPane и т. д.
- Вызов stopView() startView() для объекта View, прикрепленного к Canvas3D
Вызов isViewRunning() возвращает true, даже если кажется, что это не так, поэтому, возможно, я ищу совершенно не то место для этой проблемы. Любые мысли по этому поводу будут очень признательны.