Spring/Virgo-JavaSwing:JDialog在其他窗口后面启动

Spring/Virgo-JavaSwing:JDialog在其他窗口后面启动,java,swing,jdialog,eclipse-virgo,Java,Swing,Jdialog,Eclipse Virgo,我有一个在Virgo上运行的服务,偶尔需要提示用户并获得一些反馈。 我创建了一个扩展JDialog类的类: public class PPNDialog extends JDialog implements ActionListener, WindowListener{ public PPNDialog(JFrame frame, String title){ super(frame, title, true); ... //rest of dialog

我有一个在Virgo上运行的服务,偶尔需要提示用户并获得一些反馈。 我创建了一个扩展JDialog类的类:

public class PPNDialog extends JDialog implements ActionListener, WindowListener{
    public PPNDialog(JFrame frame, String title){
        super(frame, title, true);
        ... //rest of dialog initialisation code
    }
    ... //(other methods
}
另一个类创建新的JFrame并弹出对话框:

public class GUIStarter {
   JFrame frame;
   public GUIStarter(){
        this.initialise();
        dialog = new PPNDialog(this.frame, "");
        dialog.setVisible(true);
   }
   private void initialise() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   }
}
一切正常,除了当JDialog弹出时,它在我所有其他窗口(其他应用程序)后面的后台启动。问题在于,由于JDialog不创建任务栏条目,除非将所有现有窗口最小化,否则对话框不会被注意到。
我知道这是因为图形用户界面是从处女座开始的,但我想知道是否有可能将它向前推进,使它从前景开始。我注意到使用JOptionPane时也会发生同样的情况。所有JOptionPane消息都显示在后台。只有当GUI从virgo服务启动时,才会出现这种情况。如果将GUI作为独立应用程序运行,则不会出现此问题。

尝试使用:
setAlwaysOnTop(true)

就你而言:

dialog.setAlwaysOnTop(true);

好吧,这就成功了。。。我试着在框架上而不是在对话框上设置它,但它不起作用,但在对话框上将AlwaysOnTop设置为true起作用。谢谢