在后面一直保持一个Java窗口

问题描述 投票:-2回答:2

我想保留一个java窗口(JFrame的)总是在背后,本质上从来没有让它成为市场关注焦点或为任何其他窗口的顶部。

我目前正在使用这

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

当一个窗口获得焦点,它被发送到后面。 它的工作原理,但有一个延迟,当用户点击其中的窗口被派往前线,然后到后面,使用户非常明显的闪烁的窗口。

有没有什么办法可以预防的Java或Windows从所有发送窗口前面?

java swing
2个回答
0
投票

有一个解决方案,我发现:

JFrame frame = new JFrame("");
frame.setFocusableWindowState(false);
frame.toBack();

它只有在使用setFocusableWindowState(假),而不是setFocusable(假)的作品


0
投票

我的解决办法是,当我打开一个新的帧我把这个方法:

java.awt.Window[] windows = Window.getWindows();
for (int i = 0; i < windows.length; i++)
{
    windows[i].toFront();
}
© www.soinside.com 2019 - 2024. All rights reserved.