2009-08-19 2 views
0

안녕하세요. 데이터베이스 검색을 수행하는 Java Swing 응용 프로그램을 만들고 있습니다. 검색 중에 팝업창이 2 개 있습니다 (JDialog).프로그래밍 방식으로 현재 표시된 Java Swing JDialog 상자 닫기

첫 번째는 사용자에게 검색이 시작되었으며 닫으려면 확인 버튼이 있음을 알립니다. 두 번째 줄은 사용자에게 검색이 반환되었음을 알려주며 OK 단추를 눌러 닫습니다.

첫 번째 JDialog 상자를 프로그램 방식으로 닫는 방법이 있습니다. 검색 결과가 반환되면 검색이 반환 될 때까지 검색이 시작된 것입니다.

+0

소스 코드가 있습니까? 대화 상자가 어디에 표시되는지 알 수 있습니까? 그렇다면, 두 번째 대화 상자를 표시하기 전에 먼저 "dispose"메소드를 호출하십시오. "nos"와 마찬가지로 답변했습니다 – OscarRyz

+0

중복 됨 (세부 정보는 적음) : http://stackoverflow.com/questions/1301874 – kdgregory

답변

0

JDialog에서 the.dispose() 메소드를 호출하십시오.

+0

감사합니다. 그러나 현재 표시된 JDialog 객체에 액세스하는 방법을 알고 있습니까? 내가 사용하고있는 프레임 워크는 자신이 만든 대화 상자 객체에 대한 참조를 유지하지 않습니다. 감사. – Dave

+1

만들 때 참조를 유지해야합니다. 아마도 응용 프로그램의 전체 수명 동안 단 하나만 만들 수 있습니다 (두 번 검색을 동시에 실행해야하는 경우 제외). – DJClayworth

3

닫는 대화 상자는 setVisible(false)을 호출하는 것처럼 간단하지만 사용자의 접근 방식은 직관적이지 않습니다. 두 개의 대화 상자를 표시하는 것은 잘못된 UI 관행입니다. 진행 애니메이션/대화 상자를 표시하는 것입니다. 검색 결과가 반환되면 진행 애니메이션/대화 상자가 중지되고 반환 된 데이터가 표시됩니다. 다른 유사한 문제에

http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html http://developerlife.com/tutorials/?p=248

+0

진행률 대화 상자를 사용하면 전체 요청/응답 프로세스가 동기화되어 결과가 반환 될 때까지 진행률 표시 줄을보아야합니다. 두 개의 대화 상자를 사용하면 사용자가 결과를 기다리는 동안 다른 작업을 수행 할 수 있습니다. 아마도 더 나은 해결책은 시간 초과 후 첫 번째 대화 상자를 자동으로 닫는 것입니다 (사용자가 이전에 직접 닫지 않은 경우). – DaveJohnston

+0

대화 상자가 모달 일 필요는 없습니다. – DJClayworth

-1

체크 아웃 내 answer : 여기에 주제에 대한 몇 가지 링크가 있습니다.

+0

링크가 작동하지 않습니다. –

관련 문제