2012-01-02 5 views
0

자바에서 간단한 슬라이드 프로그램을 작성하고 있습니다. 그 프로그램에서 저는 파워 포인트와 같은 슬라이드를 새로운 창에 보여주고 싶습니다.keyListener로 jframe을 닫는 법

나는

http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/BorderLayoutDemoProject/src/layout/BorderLayoutDemo.java 내가 가진 createAndShowGUI() 메소드를 변경,

SlideShowGUI이 코드와 매우 유사하다, 그러므로, 내 MainGUI 내 SlideShowGUI을 만드는 오전, 싱글 톤 패턴이 기본 GUI를 코드 다음, 제목 표시 줄을 제거하고 난 버튼이 MainGUI에서

public static void createAndShowGUI() { 
    JFrame frame = new JFrame("BorderLayoutDemo"); 
    frame.addKeyListener(key); 
    addComponentsToPane(frame.getContentPane()); 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    frame.setUndecorated(true); 
    frame.setVisible(true); 
} 

파워 포인트 슬라이드 쇼 모드처럼을 극대화하고, ButtonHandler에서이 코드를 실행합니다

ChakmaSystem.getInstance().getGui().getSlideShowGUI().createAndShowGUI(); 

여기서 ChakmaSystem.getInstance(). getGui()은 MainGUI를 반환하고 getSlideShowGUI()는 SlideShowGUI의 getter 메서드입니다.

SlideShowGUI에서 왼쪽 버튼과 이스케이프 버튼을 추적하는 자체 KeyListener를 추가했습니다. 왼쪽과 오른쪽 제대로 작동하지만, 나는 내 SlideShowGUI 창을 닫으려면 이스케이프 버튼을 원합니다.

는이를 위해 내 모든 KeyListener에서 나는 다음과 같은 코드를 썼다 :

// Escape Case 
else if(keyCode == 27){ 
      ChakmaSystem.getInstance().getGui().getSlideShowGUI().dispose(); 
     } 

내가 탈출을 누를 때이 경우 안타, 알고, 그러나 창은 닫히지 않습니다.

어떻게해야합니까?

감사합니다.

답변

0

이 방법이 효과가 있습니까?

// Escape Case 
else if(keyCode == 27){ 
      ChakmaSystem.getInstance().getGui().getSlideShowGUI().setVisile(false); 
      ChakmaSystem.getInstance().getGui().getSlideShowGUI().dispose(); 
     } 
+0

아니요, 저도 시도했지만 작동하지 않습니다. = / – CanCeylan

관련 문제