Java 停止新创建的对话框聚焦
我试图创建JavaSwing对话框,但我不想让该对话框将焦点从当前关注的内容上移开。例如,如果您正在编辑一个word文档,而另一个应用程序创建了一个对话框,您应该可以看到该对话框,但word文档应该保持焦点,以便您可以继续编辑 我已经在MacOSX和Ubuntu12.04上测试了以下代码。在Mac上,代码创建的对话框不会像我希望的那样占据焦点。在Ubuntu上,对话框占据了焦点,我无法在创建对话框时键入 我真的希望这不是特定于操作系统的。有没有办法在所有平台(或者至少是Ubuntu)上实现我的目标 也许:Java 停止新创建的对话框聚焦,java,swing,focus,jdialog,Java,Swing,Focus,Jdialog,我试图创建JavaSwing对话框,但我不想让该对话框将焦点从当前关注的内容上移开。例如,如果您正在编辑一个word文档,而另一个应用程序创建了一个对话框,您应该可以看到该对话框,但word文档应该保持焦点,以便您可以继续编辑 我已经在MacOSX和Ubuntu12.04上测试了以下代码。在Mac上,代码创建的对话框不会像我希望的那样占据焦点。在Ubuntu上,对话框占据了焦点,我无法在创建对话框时键入 我真的希望这不是特定于操作系统的。有没有办法在所有平台(或者至少是Ubuntu)上实现我的目
我已经在Windows 7上运行了您的代码,它可以像您希望的那样工作-我可以在程序创建框时键入代码。Windows Vista也是如此:)
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);