2009-05-05 4 views
0

В настоящее время я работаю над интро-экраном для игры, разработанной с использованием JOGL. Я хочу, чтобы вступление было JPanel с несколькими кнопками для изменения параметров перед началом игры.Удаление JPanel из JFrame

Итак, у меня есть JFrame, к которому я добавляю GLCanvas. GLCanvas также содержит GLEventListener. Наконец, я добавляю JPanel.

Я переопределил метод JPanel paintComponent, чтобы установить фоновое изображение. У меня есть несколько кнопок внутри панели. Всякий раз, когда вы нажимаете кнопку «играть», он вызывает функцию, которая выполняет:

frame.remove (JPanel); frame.repaint(); animator.start();

Что происходит, так это то, что моя JPanel уходит правильно, но когда вызывается перерисовка, мой кадр просто заполнен серым. Я знаю, что аниматор запускается правильно, когда метод отображения в моем GLEventListener вызывается.

Кто-нибудь знает, в чем проблема?

+0

Создает ли ваш GLEventListener.display() что-то, если он вызывается в более простом контексте? – DJClayworth

ответ

2

Что такое LayoutManager? Если вы не указали один, добавив JPanel, вы замените GLCanvas.

Я бы сделал ваш код:
frame.remove (JPanel); frame.add (glcanvas); animator.start();
вам может потребоваться бросить в frame.revalidate(). Я не понимаю, как все это работает прямо сейчас.