我对模态对话框和undecorated有一个奇怪的问题JFrame
。
如果我创建一个未装饰的主目录JFrame
,那么我会显示一个模式对话框,这要归功于JOptionPane
,一切顺利。模态对话框始终位于顶部,我无法单击主要名声。
但是,如果创建另一个JFrame
(或另一个JDialog
),模态对话框仍然阻止我与主框架进行交互,但现在模态对话框并不总是在顶部,当我单击它时会进入主框架的下方。
不会发生此问题:
- 如果主框架被装饰
- 或者如果第二帧不可见
编辑
我jdk1.7.0.0_09
在e 上使用。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");
}