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



我有一个运行在处女座的服务,偶尔需要提示用户并得到一些反馈。我已经创建了一个类来扩展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不创建任务栏条目,除非最小化所有现有窗口,否则对话框不会被注意到。我知道这是因为GUI是从处女座开始的,但我想知道是否有可能将它向前推进,这样它就会在前景开始。我注意到当我使用JOptionPane时也会发生同样的事情。所有JOptionPane消息都出现在后台。只有当GUI从处女座服务启动时才会出现这种情况。如果我将GUI作为一个独立的应用程序运行,我就不会有这个问题。

尝试使用:setAlwaysOnTop(true);

在你的例子中:

dialog.setAlwaysOnTop(true);

最新更新