- ベストアンサー
JAVA DialogのModalの設定について
- DialogのModalの設定変更で悩んでいます。はじめModalをfalseに設定したDialogを表示し、親Frame上の'Change Modal'を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。最後の処理がうまくいかない問題があります。何がいけないのでしょうか?
- JAVAのDialogのModal設定についての問題です。はじめModalをfalseに設定したDialogを表示し、親Frame上の'Change Modal'を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。最後の処理が正しく動作しません。修正方法を教えてください。
- JAVAのDialogのModal設定について質問です。はじめModalをfalseに設定したDialogを表示し、親Frame上の'Change Modal'を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。しかし、最後の処理が正しく実行されません。問題の解決策を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>その後、Modalを再度falseに切り替え、はじめの状態へ戻す >親Frameへのアクセスがガードされっぱなしになってしまう ダイアログが、「入力イベントを占領した状態」(※親ウインドウなどへの入力が遮断された状態)である時、 setModal(false) を呼ぶことで、 「入力イベントを占領した状態」が解除されるわけではありません。 APIリファレンス参照。 http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Dialog.html
その他の回答 (1)
- lawson
- ベストアンサー率44% (29/65)
適当なことを書きます。 まったく実現性についてはためしていないです。 単におもいついただけです。 No1さんが言うように制約上うまくいかないようであれば。 1) Dialogのオブジェクトをモーダレスにする前に Dialogそのものをシリアライズ化する。 2) デシリアライズした複製をsetModdal(false)でモーダレスにする 3) 元ダイアログとをモーダレスする。 4) 元ダイアログをvisibleをfalseにして見えなくする 5) 4)とほぼ同時に複製ダイアログをvisibleをtrueにして見えるようにする 6) 元ダイアログを廃棄する。 7) 元ダイアログを格納している参照変数に 複製ダイアログを代入して、 現在の複製ダイアログは次からは元ダイアログとして 扱うようにする。 元ダイアログの構成オブジェクトが シリアライザブルで循環参照の構造がないようで あればできるかもしれない。 一度元オブジェクトを廃棄するので、 No1さんが言うところの制約上の問題は解決されるかもしれない。 以上