2012-02-26 38 views
3

我目前正在等待一个非常重要的声明,我已经或创建了一个简单的应用程序每隔30分钟检查公告是否作出不Java:如何将JFrame放到前面?

当作出公告,我想一个窗口弹出,并通知我关于它。该窗口只是一个简单的JFrame,其中包含一些文本。

我有一个名为公告类。

这个类里面我定义另一个类称为形成框架, 所以我有这样的事情:

class Form{ 

    public Form(){ 
     //create frame and show it 
      JFrame frame = new JFrame("anouncement"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Container c = frame.getContentPane(); 
     frame.setSize(420, 100); 
     JLabel l1 = new JLabel("The announcement was just made"); 
     l1.setFont(new Font("Courier New", Font.ITALIC, 20)); 
     c.add(l1); 
     frame.setLocationRelativeTo(null); 
     frame.setResizable(false); 
     frame.setVisible(true); 
     frame.toFront(); //this thing doesn't work 
     } 

} 

public class Announcement{ 

     public static void main(String[] args){ 
      //do the checking every 30 minutes part 
     } 
} 

的toFront功能不起作用的。

我想要它做的是什么,例如:当我浏览,我想这个窗口弹出,并将焦点设置在该窗口上。

所以我想这是在所有其他窗口的前面,无论我有多少其他窗口已经打开。

+0

可能的重复数据删除:http://stackoverflow.com/questions/309023/howto-bring-a-java-window-to-the-front – 2013-08-09 13:45:49

回答

2

如果我理解正确的话,你的代码中有至少两个窗口 - 一个你所说的“表”,另一种则是要“跳出”基本窗口的窗口,正确的基本程序?如果是这样,那么不要使用第二个JFrame,而是让“跳出”窗口成为JDialog或JOptionPane并使其依赖于第一个窗口。

请纠正我,如果我的假设是不正确的。

+0

你好感谢你的答案。其实我只有1个形式,我只是在主类中使用一个类来创建它。我尝试使用JOptionPane对话框,但它再次出现在前面。 – jan1 2012-02-26 12:36:44

+1

考虑创建一个小型模拟程序,该程序不具有程序的所有细节,但是可以证明你正在尝试做什么,[sscce](http://sscce.org)。 – 2012-02-26 12:38:01

+0

@ jan1这是正确的JDialog是正确的方法+1 – mKorbel 2012-02-26 12:49:41