2016-07-21 2 views

답변

3

JFrame은 객체이므로 null이 될 수 없으며 JFrame 변수는 유효한 JFrame 객체를 참조하거나 참조가 없으므로 "null이 될 수 있습니다." JFrame 객체에서 dispose()을 호출하면 객체가 여전히 존재하므로 변수가 null이 아닙니다. 그러나 JFrame은 일부 시스템 자원을 릴리스했습니다. JFrame 객체가 다시 렌더링되면 이러한 리소스가 다시 확보됩니다.

종종 경우, 이런 질문 1 인) API를

예를 작성하고 테스트 코드를 실행하고 2) 확인을위한 최적의 시험이기 때문에, 윈도우 API 당

JFrame frame = new JFrame("Foo"); 
frame.pack(); 
frame.setVisible(true); 

// in some listener 
frame.dispose(); // it's no longer visible 
System.out.println("is frame null? " + (frame == null)); 

여기서 dispose 메서드는 다음에서 상속됩니다.

이 Window, 하위 구성 요소 및 모든 소유 된 자식에서 사용하는 모든 기본 스크린 리소스를 해제합니다. 즉, 이러한 구성 요소의 리소스가 파괴되고 소비하는 모든 메모리가 OS로 반환되고 표시 할 수없는 것으로 표시됩니다. 이후의 pack 또는 show 호출로 네이티브 리소스를 재 구축하여 Window 및 그 하위 구성 요소를 다시 표시 할 수 있습니다. 재 작성된 Window 및 그 서브 컴퍼넌트의 상태는, Window가 파기 된 시점에서의 이러한 오브젝트의 상태와 같습니다 (그러한 액션 간의 추가의 변경은 고려되지 않습니다).