保持Java窗口总是在后面

时间:2018-01-04 05:29:48

标签: java swing

我希望始终在后面保留一个java窗口(JFrame),基本上永远不会让它处于焦点或任何其他窗口之上。

我目前正在使用此

JFrame frame = new JFrame("test");
frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowActivated(WindowEvent e) {
        frame.toBack();
    }
});

当窗口获得焦点时,它会被发送到后面 它可以工作但是当用户点击窗口被发送到前面然后发送到后面的窗口时会有延迟,从而导致用户非常明显的闪烁。

有什么方法可以阻止Java或Windows将窗口发送到前面吗?

2 个答案:

答案 0 :(得分:0)

我找到了一个解决方案:

{
  "name": "Test",
  "version": "0.0.1",
  "description": "Test app",
  "permissions": [ "background", "tts", "storage", "webNavigation", "activeTab", "tabs" ],

  "background": { "scripts": ["my.js"] },

  "browser_action": {
    "default_popup": "my.html"
  },
  "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",

  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["smart.js"]
    }
  ],
  "manifest_version": 2
}

只有在使用setFocusableWindowState(false)而不是setFocusable(false)时才有效

答案 1 :(得分:0)

我的解决方法是,当我打开一个新的Frame时,我会调用此方法:

java.awt.Window[] windows = Window.getWindows();
for (int i = 0; i < windows.length; i++)
{
    windows[i].toFront();
}