
はじめまして。
モーダレスダイアログについて質問がございます。フレーム(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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- iOS iPhone用動画保存アプリiCapのデータは外付けUSBメモリに保存できますか? 1 2022/10/18 17:48
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Java java final 1 2022/06/10 22:49
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
delphi stringgrid
-
VB.NETでMSComm が追加できず?
-
Visual Basic 2010を使ってRS-2...
-
「ScrollPane」のイベントの取...
-
エクセルVBAで、条件に一致する...
-
String.containsの反対機能はあ...
-
アコーディオンメニューをアン...
-
0歳児の指しゃぶりに関して
-
中学生です。 私は教室の黒板に...
-
変数名の付け方
-
そんなにお金がなくても年に1度...
-
今日は こどもの日 で、良い天...
-
クラス間でのデータ参照
-
packageとimport の違いって?
-
Excel VBA 定数にオブジェクト...
-
僕の出身中学校は200人同級生が...
-
エクセルVBAでのwitheventsにつ...
-
Spring などDIコンテナの利点と...
-
フォームオブジェクトの削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
VB.NETでMSComm が追加できず?
-
Visual Basic 2010を使ってRS-2...
-
ファイル保存先のダイアログが...
-
requestFocusについて
-
java gui のイベント処理が重い
-
swingでボタンにボーダーをつけ...
-
ラベルをプログレスバーのよう...
-
ツールボックスのような折りたたみ
-
C++Builder でPanel上にフォー...
-
C#で設定時刻到来時にイベント...
-
文字の色の変更
-
VB6のツールボックスへのコンポ...
-
C++ で PostqreSQL
-
画像の表示
-
コンポーネントとBeanの違いとは?
-
フレーム上のコンポーネントの...
-
BoxLayout使用時の不具合について
-
C#で参照したCOMコンポーネント...
-
VS2010デザイナーの読込エラー...
おすすめ情報