モーダル ダイアログとundecoratedに奇妙な問題がありますJFrame
。
メインの装飾なしを作成するJFrame
と、 のおかげでモーダル ダイアログが表示されJOptionPane
、すべてがうまくいきます。モーダル ダイアログが常に一番上に表示されたままになり、メインの名声をクリックできません。
しかし、別のものJFrame
(または別のものJDialog
) を作成すると、モーダル ダイアログは依然としてメイン フレームとの対話を妨げますが、モーダル ダイアログは常に上部にあるとは限らず、クリックするとメイン フレームの下に移動します。
この問題は発生しません:
- メインフレームが装飾されている場合
- または、2 番目のフレームが表示されていない場合
編集
私はeで使用jdk1.7.0.0_09
しLinux Sus
ますが、同じ結果が得られますjre 1.6.0_32
テストに使用したコード:
public static void main(String[] args) {
// creates main frame and set visible to true
final JFrame mainFrame = new JFrame();
mainFrame.setUndecorated(true); // if I comment this line, everything goes well
mainFrame.add((new JPanel()).add(new JButton("OK")));
mainFrame.setSize(new Dimension(500, 500));
mainFrame.setVisible(true);
// creates a dialog and set visible to true
JFrame anotherFrame = new JFrame();
anotherFrame.setVisible(true); // or if I comment this line, everything goes well too
// display a modal dialog
JOptionPane.showMessageDialog(mainFrame, "A message");
}