我想保留一个java窗口(JFrame的)总是在背后,本质上从来没有让它成为市场关注焦点或为任何其他窗口的顶部。
我目前正在使用这
JFrame frame = new JFrame("test");
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent e) {
frame.toBack();
}
});
当一个窗口获得焦点,它被发送到后面。 它的工作原理,但有一个延迟,当用户点击其中的窗口被派往前线,然后到后面,使用户非常明显的闪烁的窗口。
有没有什么办法可以预防的Java或Windows从所有发送窗口前面?
有一个解决方案,我发现:
JFrame frame = new JFrame("");
frame.setFocusableWindowState(false);
frame.toBack();
它只有在使用setFocusableWindowState(假),而不是setFocusable(假)的作品
我的解决办法是,当我打开一个新的帧我把这个方法:
java.awt.Window[] windows = Window.getWindows();
for (int i = 0; i < windows.length; i++)
{
windows[i].toFront();
}