Spring/Virgo-JavaSwing:JDialog在其他窗口后面启动
我有一个在Virgo上运行的服务,偶尔需要提示用户并获得一些反馈。 我创建了一个扩展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
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起作用。谢谢