1,The upstair tell you a best way. 2,You can extends JWindow override show() like this: public void show() { super.show(); this.requestFocus(); } and then add a window listener for the focus lost event:
addFocusListener (new java.awt.event.FocusAdapter () { public void focusLost (java.awt.event.FocusEvent evt) { this.toFront(); } } ); It seems to work for me...
3.You can also try to use thread, I recommend this way. /** * Call this from class consrUCtor */ public void initialize() { TopThread top = new TopThread(); top.start(); }
/** * Keep JWindow on top (inner class) */ class TopThread extends Thread { public void run() { while(true) { toFront(); /** * Let 10 milliseconds for other code to execute */ try { Thread.sleep(10); } catch(Exception e) { // do what you wanna do } } } }
You can see:http://forum.java.sun.com/thread.jsp?forum=57&thread=166992 That's some others discuss it.