Я пытаюсь добавить GLCanvas с OpenGL-контентом в JPanel. JPanel находится внутри JTabbedPane. Но когда GLCanvas находится внутри JPanel, панель просто серая. Когда я добавляю GLCanvas непосредственно в TabbedPane, все работает отлично.GLCanvas внутри JPanel не работает
Вот рабочий код:
JTabbedPane mainPane = frame.getMainPane();
GLCanvas canvas = cogl.getCanvas();
mainPane.add("OGL",canvas);
An здесь является не-рабочий код:
JTabbedPane mainPane = frame.getMainPane();
GLCanvas canvas = cogl.getCanvas();
JPanel panel = new JPanel();
panel.add(canvas);
mainPane.add("OGL",panel);
Так как я могу получить GLCanvas работает внутри JPanel?
Это на самом деле не удивительно. 'GLCanvas' основан непосредственно на' java.awt.Canvas'. Смешивание контейнеров с тяжелыми весами в легких контейнерах всегда приводит к странным проблемам, главным образом относящимся к z-упорядочению компонентов (компоненты AWT не имеют понятия z-упорядочения). Хотя я знаю, что это «предположительно» было исправлено на Java 6, я стал свидетелем многих «странных» проблем вокруг него, чтобы рассмотреть возможность его использования. Лучше всего, не смешивайте тяжелые и легкие компоненты – MadProgrammer