2009-05-05 9 views
0

현재 JOGL을 사용하여 디자인 된 게임의 소개 화면에서 작업 중입니다. 인트로가 게임을 시작하기 전에 몇 가지 버튼을 사용하여 옵션을 변경하는 JPanel이되기를 바랍니다.JFrame에서 JPanel 제거

그래서 GLCanvas를 추가하는 JFrame이 있습니다. 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()를 throw해야 할 수 있습니다. 나는 지금 그 모든 일이 어떻게 작동하는지에 관해 생각하지 않는다.