停止新创建的对话框以获得焦点

我正在尝试创建Java Swing对话框,但我不希望让对话框将焦点从当前所关注的内容中移开。 因此,例如,如果您正在编辑单词doc并且其他应用程序创建了一个对话框,您应该看到对话框,但单词doc应保持焦点,以便您可以继续编辑。

我在Mac OSX和Ubuntu 12.04上测试了以下代码。 在Mac上,代码创建的对话框不会像我想的那样占据焦点。 在Ubuntu上,对话框成为焦点,我在创建它时无法输入。

我真的希望这不是特定于操作系统的。 有没有办法实现我在所有平台(或至少Ubuntu)上尝试做的事情?

import javax.swing.*; import java.awt.Color; import java.util.Random; public class Focus { private static Random r = new Random(); public static void main(String[] args) { while(true) { try { Thread.sleep(500); createObject(r.nextInt(1000), r.nextInt(600)); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void createObject(int x, int y) { JDialog testDialog = new JDialog(); testDialog.setSize(50, 50); testDialog.setLocation(x, y); testDialog.setAlwaysOnTop(true); testDialog.setUndecorated(true); testDialog.setFocusable(false); testDialog.setEnabled(false); testDialog.setVisible(true); } } 

也许:

 testDialog.setFocusableWindowState(false);