2010-12-20 2 views
3

안녕하세요 모두 : 자바 스윙 앱이 있습니다. 사용자가 응용 프로그램의 새 창을 열 수있는 버튼이 있습니다. 사용자가 응용 프로그램을 닫을 때 System.Exit (0)을 사용하지만 "닫기"단추를 누르면 응용 프로그램 창이 닫힙니다. 위자바 스윙 닫기 한 응용 프로그램 만 해당

public static void main(String[] args) 
{  
ghMain = new GreenHouseMain();  
} 

내가 다음 두 번째 응용 프로그램 창을 엽니 새로운 GreenHouseMain 개체를 생성하는 동일한 코드를 사용하여 첫 번째 응용 프로그램을 초기화하는 방법입니다.

그럼 내 질문은 내가 닫은 버튼이 눌렀던 하나의 응용 프로그램 창만 닫는 것입니까?

고마워요.

답변

3

닫으려는 Window 개체의 System.exit() 대신 dispose()을 호출하십시오. 창이 더 이상 보이지 않으면 Event Dispatch 스레드가 종료됩니다.

+0

+1 System.exit (code)는 JVM을 종료하고 dispose()는 window 인스턴스와 관련된 자원을 삭제합니다. 또한 응용 프로그램 관점에서 System.exit (코드) 호출 (또는 다른 모든 창 처 리)을 사용해야하는 "기본 창"이있을 수 있습니다. – 01es

1

두 창이 모두 JFrames라고 가정합니다. 그렇다면 요구 사항에 따라 두 번째 창을 JDialog, 모달 또는 넌 모달로 만드는 것이 좋습니다. 두 창을 모두 열어두고 사용자가 닫을 문구를 선택할 수 있도록하려면 두 가지 모두 대화 상자가 필요합니다. 단, 사용자가 제공 한 정보를 바탕으로 100 % 확신 할 수는 없습니다. 이 제안으로 문제가 해결되지 않으면 정확한 요구 사항에 대한 자세한 정보를 제공해주십시오.

1

read the javadocs (setDefaultCloseOperation) System.exit() 정확히 무엇을하고있어, 그래서 그것을 제거하십시오.

관련 문제