Java:如何在父窗口下打开新的jframe

Java:如何在父窗口下打开新的jframe,java,popup,z-index,Java,Popup,Z Index,如何在父框架下创建和打开新的jframe。我试图达到一种效果,新窗口(未装饰)似乎从父窗口后面滑出。现在它在焦点中打开,失去了效果。(J)帧没有父帧。虽然它有图形配置,但我想你不会问这个问题。 如果你想把焦点移回打开窗口。这一行中的某些内容应该: final JFrame parent = ... JFrame f=new JFrame(); f.addWindowListener(new WindowAdapter(){ @Override public void w

如何在父框架下创建和打开新的jframe。我试图达到一种效果,新窗口(未装饰)似乎从父窗口后面滑出。现在它在焦点中打开,失去了效果。

(J)帧没有父帧。虽然它有
图形配置
,但我想你不会问这个问题。 如果你想把焦点移回打开窗口。这一行中的某些内容应该:

 final JFrame parent = ...
 JFrame f=new JFrame();
 f.addWindowListener(new WindowAdapter(){
     @Override
     public void windowActivated(WindowEvent e) {
         e.getWindow().removeWindowListener(this);//do not listen any more, we do
         EventQueue.invokeLater(new Runnable(){//wait for the pending events
                     @Override
                     public void run() {
                         parent.toFront();
                     }                          
                 });
             }
         });

在子/弹出jframe的构造函数中编写以下内容

setModal(true);

为什么要在父JFrame下创建另一个JFrame,而不是使用模态功能创建JDialogue。它不太适合我试图实现的效果。不过我想出来了。有点笨重,但我只是实例化了这个窗口,并立即获得了父窗口请求焦点。如果第一个窗口实际上是一个非模态JDialog,并且父窗口是您想要在它下面的窗口,它最初是不可见的,然后变为可见的,该怎么办。JDialog必须位于父窗口的顶部。