对 Java 相当陌生,并且遇到了 z 顺序问题。我有一个旧版 Java 应用程序,它有一个主窗口 A,它会弹出一个模式 JDialog B。单击 B 上的按钮后,会弹出一个模式对话框 C。
对于从 B 到 C 的过渡:
B.setVisible(false);
B.setModalityType(Dialog.ModalityType.MODELESS);
B.toFront();
B.repaint();
B.setVisible(true);
....
C.pack();
C.setResizable(false);
C.setModal(true);
C.setVisible(true);
当 C 消失时,执行相反的操作,B 再次设置为模态。
这是有效的,只是一旦显示 C,B 就会被推到 A 后面。我想在显示 C 时将 B 保持在 A 前面。
我误解/做错了什么?
在 Windows 7 64 位、Java 1.8.0_20-b26 上运行。
最佳答案
确保 C 对话框的父级是 B 而不是 A。
关于java - 打开另一个 JDialog 时,模态 JDialog 被推到后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27404342/