はじめまして。
モーダレスダイアログについて質問がございます。フレーム(JFrame 継承)から、このフレームを所有者とするモーダレスダイアログ(JDialog 継承)を表示した状態で、マウスクリックによりフレームをアクティブにした場合、フレームは背面に表示されたままとなりますが、このフレームをダイアログの前面に表示させることは可能でしょうか?ご存知の方がいらっしゃいましたらご教授願います。尚、下記にサンプルソースを記載します。
■環境
OS:WinXP
java:j2sdk1.4.2_08
※ダイアログ生成時に所有者を指定しなければ、フレームをダイアログ前面に表示させることが可能ですが、この方法だと再度モーダレスダイアログをアクティブにした場合、上記とは別インスタンスのフレームから表示されたモーダレスダイアログも連動して前面に表示されるという事象を確認しております。
public class ParentFrame extends JFrame
implements ActionListener {
public static void main(String[] args) {
ParentFrame frame = new ParentFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public ParentFrame() {
super("親フレーム");
setSize(300, 200);
setLocationRelativeTo(null);
JButton btn = new JButton("ダイアログ表示");
btn.addActionListener(this);
getContentPane().add(btn);
}
public void actionPerformed(ActionEvent e) {
// モーダレスダイアログ生成
JDialog dlg = new JDialog(this, "子ダイアログ");
dlg.setSize(200, 100);
dlg.setLocationRelativeTo(this);
dlg.setVisible(true);
}
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
JDialogはダイアログとしての性格上、常に前面表示のようですね。
owner指定が重要なら、JWindowを使ってみては?
JWindow(Frame owner)
というコンストラクターがあります。
この回答への補足
サンプルソースの JDialog を JWindow に変更して試してみました。やはりフレームはウインドウの前面に表示されませんでした。ちなみに、JWindow でもタイトルバーを表示させることは可能なのでしょうか?
補足日時:2006/12/24 02:22No.1
- 回答日時:
こんにちは。
[特徴]
フレーム = 親ウィンドウを持たないウィンドウ
ダイアログ = 親ウィンドウを持つウィンドウ ※親ウィンドウの背面に隠れることはできない
[要求]
親ウィンドウの背面に隠したい
↓
以上のように考えると、フレームを使えば良いのでは?
と思いますが、JDialogでなければいけない理由などがあるのでしょうか?
// モーダレスダイアログ(フレームによる実装)生成
JFrame dlg = new JFrame("子ダイアログ");
この回答への補足
おっしゃるとおり、フレームを使用すれば今回の問題は解決できます。但し、フレームから表示される子画面は JDialog を継承したものでないといけないという実装上のルールがある為、ダイアログで実現可能であるか調査しているところです。ダイアログ生成時に所有者を指定しなければフレームをダイアログの前面に表示させることが可能であることまでは分かっている為、何かしらの処理を施せばダイアログ生成時に所有者を指定してもフレームをダイアログの前面に表示させることが可能ではないかと考えました。
補足日時:2006/12/24 01:39お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
ファイル保存先のダイアログが...
-
VB6のツールボックスへのコンポ...
-
TableModelListener 通知出し方
-
Buttonの色
-
文字装飾可能なテキストエディ...
-
ツールボックスのような折りたたみ
-
C++ Builder でVisibleとshow
-
Visual Studio.NETについて
-
VS2010デザイナーの読込エラー...
-
JavaAppletのイベントの強制発...
-
VB.NETでMSComm が追加できず?
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
エクセルVBA 画像を貼り付ける...
-
変数名の付け方
-
複数の変数を宣言する時、同時...
-
Excelで =EMBED("Acrobat Docu...
-
private static という変数の修飾
-
Excel VBA 定数にオブジェクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
VB.NETでMSComm が追加できず?
-
requestFocusについて
-
Visual Basic 2010を使ってRS-2...
-
[delphi] 変数を利用してコンポ...
-
VBSでCDトレイのオープン/ク...
-
VB6のツールボックスへのコンポ...
-
フレーム上のコンポーネントの...
-
ファイル保存先のダイアログが...
-
アクティブなTextFiel...
-
同じコンポーネントを複数の場...
-
コントロールの表示・非表示
-
Buttonの色
-
ゲーム画面(JFrame)のサイズ変...
-
画像を一瞬だけ表示する。
-
VS2010デザイナーの読込エラー...
-
文字装飾可能なテキストエディ...
-
C#で設定時刻到来時にイベント...
-
JTableでのCellRendererについて
-
JButton配列でのイベント処理
おすすめ情報