Java-SwingGUI窗口顺序

Java-SwingGUI窗口顺序,java,windows,swing,Java,Windows,Swing,在下面的代码中,为什么“我的应用程序”窗口是前面的窗口?main方法首先构造这个窗口,对吗?那么,当“我的窗口”JFrame生成时,它不应该在后面吗 public class MyApp extends JFrame { public MyApp() { super(); setSize(300,600); setTitle("My Application"); setVisible(true); } public static void main(String[] args) { My

在下面的代码中,为什么“我的应用程序”窗口是前面的窗口?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)时,“我的窗口”出现在前面,但我毫不怀疑您正确地描述了系统上发生的情况。

这只是未定义的行为;不能保证任何一扇窗户总是在前面。当我运行您的代码(Mac OS X,Java 6)时,“我的窗口”出现在前面,但我确信您正确地描述了系统上发生的情况。

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

2) 不要创建多个
JFrame
,此
顶级容器还存在另一个问题,如
toFront
toBack

3) 您必须将
JDialog
JWindow
视为另一个窗口

  • parent
    添加到
    JFrame

  • 如果需要,使用
    setModal

  • 需要使用
    modalitypes

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

2) 不要创建多个
JFrame
,此
顶级容器还存在另一个问题,如
toFront
toBack

3) 您必须将
JDialog
JWindow
视为另一个窗口

  • parent
    添加到
    JFrame

  • 如果需要,使用
    setModal

  • 需要使用
    modalitypes


    • @Tharwen 1)第一个
      MyApp扩展JFrame
      ,2)第二个
      JFrame窗口=新JFrame()3)在
      初始线程
      中都是可见的,我不是说它错了!只是它没有明确回答这个问题:“为什么“我的应用程序”窗口是前面的窗口?”@Tharwen 1)第一个
      MyApp扩展JFrame
      ,2)第二个
      JFrame window=new JFrame()3)在
      初始线程
      中都是可见的,我不是说它错了!只是它没有明确回答这个问题:“为什么“我的应用程序”窗口是前面的窗口?”