Java-SwingGUI窗口顺序
在下面的代码中,为什么“我的应用程序”窗口是前面的窗口?main方法首先构造这个窗口,对吗?那么,当“我的窗口”JFrame生成时,它不应该在后面吗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
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)不能将一个JFrametoFront()
移动到另一个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)在初始线程
中都是可见的,我不是说它错了!只是它没有明确回答这个问题:“为什么“我的应用程序”窗口是前面的窗口?”