现在的问题是,如果在电脑的状态栏切换了图标,把当前的JFrame窗口隐藏以后,再换回来,那么父窗口就不显示了,怎么才能让他显示出来呢?就像一个JDialog点了以后,父窗口也会同时出现一样.
问题:    我在public void windowActivated(WindowEvent e) 这个方法中只要添加父容器owner的toFront()方法,整个界面就会闪烁不停.

以下是代码:import javax.swing.JFrame;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Dialog;public class JXFrame extends JFrame
{
       private boolean isDeActived = false;
       Window owner = null ;
       public JXFrame()
       {
              this(null) ;
       }
       
       public JXFrame(Frame owser)
       {
              super("模式窗口") ;
              owner = owser ;
              initOwner(owser) ;
       }
       
       public void initOwner(final Window parent)
       {
              if(parent != null)
              {
                     parent.setEnabled(false);
                     addWindowListener(new WindowAdapter()
                     {
                            public void windowOpened(WindowEvent e)
                            {
                                   parent.setEnabled(false);
                            }
       
                            public void windowClosed(WindowEvent e)
                            {
                                   parent.setEnabled(true);
                                   parent.removeWindowListener(this);
                                   parent.toFront();
                            }                              public void windowActivated(WindowEvent e) 
                            {
                                   
                            }
                         
                     });
                     
                     parent.addWindowListener(new WindowAdapter()
     {
                            public void windowActivated(WindowEvent e)
                            {
                                   if (isShowing())
                                   {
                                          setExtendedState(JFrame.NORMAL);
                                          toFront();
                                   } else
                                   {
                                          parent.removeWindowListener(this);
                                   }
                            }
     });
              }
       }
       }