2

有没有一种方法可以在不最小化当前全屏游戏的情况下将我的窗口放在前面?

例如:我正在玩游戏,然后我在游戏中单击 CTRL+F 并弹出一个窗口,我可以使用该窗口并且游戏不会最小化或失焦。

myFrame.toFront(); myFrame.repaint();当我单击 CTRL+F 时,我已经有了我的代码。

如果有人可以帮助我,我将不胜感激,谢谢

卡洛斯·巴罗斯

编辑:也许我应该这么说,但游戏是像反恐精英或英雄联盟这样的游戏,我没有制作游戏。

4

1 回答 1

2

我已经有我的代码到 myFrame.toFront(); myFrame.repaint();

不要将 JFrame 用作弹出窗口。一个应用程序应该只有一个 JFrame。对于子窗口,您应该使用 JDialog。在您的情况下,您似乎想要一个非模态对话框。

我可以使用那个窗口并且游戏不会最小化或失去焦点。

默认情况下,当您显示对话框时,无论它是否是模态的,它都会获得焦点(因此框架将失去焦点)。

如果要防止非模态对话框获得初始焦点,则需要如下代码:

dialog.setFocusableWindowState( false );
dialog.setVisible(true);
dialog.setFocusableWindowState( true );

当您使对话框可见时,它将不会获得焦点(并且框架将保持焦点)。但是,如果您稍后单击对话框,它将能够获得焦点。

于 2013-06-08T15:33:05.733 回答