rt,有两个JFrame,其中一个为MainWindow(主窗口),另外一个为SessionWindow,在MainWindow中触发某个菜单项即可创建并显示SessionWindow到前台来。我在SessionWindow重载了show()方法(因为直接调用JFrame缺省的show()方法不能将SessionWindow()显示到前台来),其代码如下:
  EventQueue.InvokeLater(new Runnable() {
  void run()
  {
     super.show();
     setstate(JFRAME.ICONIFIED);
     setstate(JFRAME.NORMAL);
  }
 });
一般情况下能达到要求,但是平均差不多10次总有一次SessionWindow显示不到前台,而是在MainWindow后面,后来也尝试在代码后面加上:
    tofront();
    requestFocus();
以及将run方法中的语句直接拿出来执行,只是出现显示不到前台的几率小一些,但是还是不能绝对避免,不知道大虾们有什么好办法,谢谢了
btw,在创建SessionWindow并显示的过程中,MainWindow中有线程正在执行任务,但其中没有与界面直接相关的部分,不知道与这个有关没有。
    还望有经验的大虾指教,谢谢了