始终将Java窗口放在后面

始终将Java窗口放在后面,java,swing,Java,Swing,我希望java窗口(JFrame)总是放在后面,基本上不让它处于焦点或任何其他窗口的顶部 我目前正在使用这个 JFrame frame = new JFrame("test"); frame.addWindowListener(new WindowAdapter() { @Override public void windowActivated(WindowEvent e) { frame.toBack(); } }); 当窗口获得焦点时,它将被发送到后

我希望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();

仅当使用SetFocusableWindowsState(false)和not setFocusable(false)时,此方法才有效。

我的解决方案是,当我打开一个新帧时,我将此方法称为:

java.awt.Window[] windows = Window.getWindows();
for (int i = 0; i < windows.length; i++)
{
    windows[i].toFront();
}
java.awt.Window[]windows=Window.getWindows();
对于(int i=0;i
您可以将窗口设置为unfocusableframe。setFocusable(false)似乎不起作用,窗口仍然为我发送到前面。“(JFrame)总是在后面”为什么?什么应用。这有什么特点?请看,我正在尝试模拟桌面小部件并为桌面的一部分设置动画。对于用户来说,能够将其放在最前面是令人讨厌的。