2011-11-30 4 views
2

나는 누군가에게 나를 도울 수 있기를 바랍니다.대화 상자에서 프레임 시작

나는 모달이 내가 그것을 클릭하면 I 프레임 f 대화 d1 그래서 내가 비에 대화 d1을 설정해야합니다 생각 뒤에가는 것을 할 때 나는 그러나 JFramef을 시작해야하는 JXHyperlink을 포함 JDialogd1 이것이 작동하려면 - 모달 이요!

d1.setModal(false) 

이제 내 문제는 내가 다른 내가 그것을 클릭하면, 그것은 대화 d1를 시작해야 버튼이 대화 d2을 "모달"가지고 있지만 어떤 이유로 d1 뒤에 d2가는 것입니다.

내가 뭘 잘못하고 있니? 모달 대화 상자에서 모달이 아닌 대화 상자를 시작할 수 없습니까?

답변

2

모달 대화 상자는 항상 부모 프로세스에 표시됩니다. 따라서 모달 대화 상자에서 임의의 창 (JFrame, 모달이 아닌 JDialog)을 실행하면 문제가 발생합니다.

대화 상자 d (n)이 대화 상자 d (n-1)에 있고 모달이되고 d (n-1)이 부모가되도록하려는 경우 해결책이 있습니다.

그래서 첫 번째 경우에는 JFrame을 JDialog로 변경하여 모달이되게 할 수 있습니다. 대화 상자의 새 인스턴스를 시작할 때마다 그 부모가 될 창을 설정하십시오. 동시에 많은 모달 대화 상자를 열지 않도록하십시오. 그것은 매우 성가신 일입니다.

+0

감사합니다. 알렉스, 나는 그 일을해야한다고 생각했지만, JFrame이 다른 위젯과 프레임에서도 실행되기 때문에 코드 변경을 피하려고합니다. 이것은 모두 큰 응용 프로그램의 일부입니다. – user955165

0

팝업이 표시되는 동안 양식을 변경할 수 없다는 점은 주목할 가치가 있습니다. 팝업의 가시성 (setVisible (boolean))을 변경하고 그 양식을 변경할 수 있습니다. 그러나 그것이 보이는 경우 어떤 양식 변경도 효과가 없습니다.

관련 문제