Java - Swing GUI 窗口顺序



在下面的代码中,为什么"我的应用程序"窗口是前面的窗口?main 方法首先构造这个窗口,对吧?那么,当"我的窗口"JFrame制作时,它不应该在后面吗?

public class MyApp extends JFrame {
public MyApp() { 
super();
setSize(300,600); 
setTitle("My Application"); 
setVisible(true);
}
public static void main(String[] args) { 
MyApp application = new MyApp(); 
JFrame window = new JFrame(); 
window.setSize(600,300); 
window.setTitle("My Window"); 
window.setVisible(true);
} 
}

这只是未定义的行为;不能保证任何一个窗口将始终位于前面。当我运行你的代码(Mac OS X,Java 6)时,"我的窗口"出现在前面,但我毫不怀疑你正确地描述了系统上发生的事情。

1)你不能将一个JFrame toFront()移动到另一个JFrame

2)不要创建多个JFrame,这个Top-Level Container还有另一个问题,因为toFronttoBack

3)您将JDialogJWindow视为另一个窗口

  • parentJFrame

  • 如果需要,可带setModal

  • 需要ModalityTypes

最新更新