2012-11-30 15 views
13

java.awt.Dialogがモダリティ(他のウィンドウをブロックする)をどのように実現しているのか理解したいですか?java.awt.dialogはモダリティをどのように達成しますか?

ええ、私はjava.awt.Dialogのコードを読もうとしましたが、迷っています。だから私は彼らが何をしているか簡単に知りたい。他のすべてのウィンドウのすべてのイベントを無効にしますか?

おかげ プレム

+0

はおそらくいくつかのネイティブライブラリをPOJOにラップします。 – user1329572

+2

AWTはネイティブウィジェットを使用しているため、実際の実装のための基盤となるツールキットに依存します。例えば、ウィンドウでは、これはDialogBox関数(http://msdn.microsoft.com/en-us/library/windows/desktop/ms645452%28v=vs.85%29.aspx) – Zoe

答えて

2

そのシステムに依存します。ウィンドウでは、メインイベントループが変更されます。ほとんどの場合、モーダルではないダイアログを開いて下にあるウィンドウを手動でロックする方がよい(たとえば、ガラス板をルートペインに設定して無効にしたり、カスタムフォーカスマネージャを設定するすべてのイベントをブロックするなど)。

+1

を介して可能性が高い手動でモダリティを設定する方がいい理由を説明してください。 –

+0

あなたがリダイレクトされたOSのメインイベントループの問題を回避するためにアプリケーションにイベントを抑止するなら、あなたはスローの詳細な知識が必要です。 –

関連する問題