• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JAVA DialogのModalの設定について)

JAVA DialogのModalの設定について

このQ&Aのポイント
  • 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へのアクセスをガードします。しかし、最後の処理が正しく実行されません。問題の解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kacchann
  • ベストアンサー率58% (347/594)
回答No.1

>その後、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)
回答No.2

適当なことを書きます。 まったく実現性についてはためしていないです。 単におもいついただけです。 No1さんが言うように制約上うまくいかないようであれば。 1) Dialogのオブジェクトをモーダレスにする前に Dialogそのものをシリアライズ化する。 2) デシリアライズした複製をsetModdal(false)でモーダレスにする 3) 元ダイアログとをモーダレスする。 4) 元ダイアログをvisibleをfalseにして見えなくする 5) 4)とほぼ同時に複製ダイアログをvisibleをtrueにして見えるようにする 6) 元ダイアログを廃棄する。 7) 元ダイアログを格納している参照変数に 複製ダイアログを代入して、 現在の複製ダイアログは次からは元ダイアログとして   扱うようにする。 元ダイアログの構成オブジェクトが シリアライザブルで循環参照の構造がないようで あればできるかもしれない。 一度元オブジェクトを廃棄するので、 No1さんが言うところの制約上の問題は解決されるかもしれない。 以上

関連するQ&A