2013-05-23 1 views
-3

부모 인 JFrame이 하나 있습니다. 부모 JFrame의 버튼 중 하나를 사용하여 자식 윈도우 인 새 JFrame을 엽니 다.아이를 닫지 않고 부모 winow에 액세스하도록 제한하십시오.

아이를 닫지 않고 부모 winow에 액세스하도록 사용자를 제한하려면 어떻게합니까?

JDialog를 JFrame에 의존적으로 사용할 수 없습니다.

미리 감사드립니다.

+3

* "JDialog를 JFrame에 의존해서 사용할 수 없습니다." 'JDialog'는 부모를 가질 수도 있고 가지지 않을 수도 있습니다. –

+0

@AndrewThompson : 내 자녀들의 외도는 여러 곳에서 왔고 다른 곳에서 전화를받는 어린이 창은 23 개가 있습니다. JDialog로 만들면 다시 UI 문제를 처리해야합니다. 또한 테스트가 필요합니다. 그래서 나는 JFrame 자체를 사용하여 동일한 기능을 구현하는 것이 가능하다고 생각하고 있습니까? – Navnath

+1

나는 아직도 이해하지 못한다 * ".. 나는 다른 장소에서 호출되는 23 개의 자식 윈도우를 가지고있다."* 23 개의 다른 윈도우가 화면 상에 동시에있을 수 있다는 것을 의미합니까? 이것은 MDI (Multi-Document Interface)의 경우입니다. '한 번에 하나씩'이라면'getDialog (Component content)'에 정적 메소드가있을 수 있습니다 .. –

답변

2

당신이 찾고있는 것은 Modality in Dialogs입니다.

인용구 :

  • 모달 대화 상자 - 자신의 소유자로 대화 상자로 만든 창을 제외하고는 응용 프로그램에서 다른 톱 레벨 윈도우에 블록 입력 대화 상자. 모달 대화 상자는 대개 버튼을 눌렀을 때 닫힐 때까지 창 포커스를 캡처합니다.

  • 모덜리스 대화 상자 -이 대화 상자가 표시되어있는 동안 다른 창을 조작 할 수있는 대화 상자입니다.

또한 JDialog#setModalityType()Dialog.ModalityType 봐. 대화 상자의 모달 유형을 설정할 수 있습니다.

가능한 유형은 다음과 같습니다

  • APPLICATION_MODAL : APPLICATION_MODAL 다이얼로그는, 자신의 아이 계층으로부터의 것을 제외 해, 같은 Java 응용 프로그램의 모든 최상위 창.
  • DOCUMENT_MODAL : DOCUMENT_MODAL 대화 상자는 하위 문서 의 문서를 제외한 동일한 문서의 모든 최상위 창에 대한 입력을 차단합니다.
  • MODELESS : MODELESS 대화 상자는 최상위 창을 차단하지 않습니다.
  • TOOLKIT_MODAL : TOOLKIT_MODAL 대화 상자는 자체 툴킷에서 실행되는 모든 최상위 창을 자체 하위 계층 구조의 창을 제외하고 모두 차단합니다.
관련 문제