始终将Java窗口放在后面
我希望java窗口(JFrame)总是放在后面,基本上不让它处于焦点或任何其他窗口的顶部 我目前正在使用这个始终将Java窗口放在后面,java,swing,Java,Swing,我希望java窗口(JFrame)总是放在后面,基本上不让它处于焦点或任何其他窗口的顶部 我目前正在使用这个 JFrame frame = new JFrame("test"); frame.addWindowListener(new WindowAdapter() { @Override public void windowActivated(WindowEvent e) { frame.toBack(); } }); 当窗口获得焦点时,它将被发送到后
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)总是在后面”为什么?什么应用。这有什么特点?请看,我正在尝试模拟桌面小部件并为桌面的一部分设置动画。对于用户来说,能够将其放在最前面是令人讨厌的。