Javaしてます。
UIを作っている際に、モーダルなウィンドウってのをやりたくて、いろいろ調べました。
ダイアログでモーダルというのは簡単に見つかるんですが、なかなかモーダルウィンドウのやり方に関しては記述はないのですよ。
google力が低いのかとおもったのですが、ちょっとわかる人に聞いたら、モーダルウィンドウを作らなくてはいけないようなUIの設計がまずいんじゃ?といわれてしまいました。
…でも、モーダルウィンドウのままの方が使い勝手がいいとおもうんだけどな。
結局泥臭いコーディングでモーダルウィンドウを実現しています。
親ウィンドウを
setEnabled(false);
で操作不能した後で子ウィンドウを開くのですが、そのときに、
child(this);
と、呼び出した親を伝えて、子ウィンドウの処理が終わったときに、
this.setEnabled(true);
で、親ウィンドウの制御を回復させてから、
dispose();
させるという形で実現しました。
スマートなやり方ではないですが、これで一応の実現はできています。
ちなみに、子ウィンドウを常に親ウィンドウより前面に表示させたいのですが、それはまだ実現できていません。Javaがわかる人、教えてください。
classにウィンドウフォーカスに関するものがあるみたいなのだけども、使い方がいまいち…。
UIを作っている際に、モーダルなウィンドウってのをやりたくて、いろいろ調べました。
ダイアログでモーダルというのは簡単に見つかるんですが、なかなかモーダルウィンドウのやり方に関しては記述はないのですよ。
google力が低いのかとおもったのですが、ちょっとわかる人に聞いたら、モーダルウィンドウを作らなくてはいけないようなUIの設計がまずいんじゃ?といわれてしまいました。
…でも、モーダルウィンドウのままの方が使い勝手がいいとおもうんだけどな。
結局泥臭いコーディングでモーダルウィンドウを実現しています。
親ウィンドウを
setEnabled(false);
で操作不能した後で子ウィンドウを開くのですが、そのときに、
child(this);
と、呼び出した親を伝えて、子ウィンドウの処理が終わったときに、
this.setEnabled(true);
で、親ウィンドウの制御を回復させてから、
dispose();
させるという形で実現しました。
スマートなやり方ではないですが、これで一応の実現はできています。
ちなみに、子ウィンドウを常に親ウィンドウより前面に表示させたいのですが、それはまだ実現できていません。Javaがわかる人、教えてください。
classにウィンドウフォーカスに関するものがあるみたいなのだけども、使い方がいまいち…。
てのを使えばいいんでない?なんかそのあたりの面倒くさいことは全部やってくれそうだよ。
参考にしたURLは以下の通り。
http://sunsite.tus.ac.jp/java/javaj/japi/java.awt.Dialog.html
http://www.wakhok.ac.jp/~tatsuo/kouki97/7shuu/TextEditor2.java.html