Java透明JPanel(allwaysOnTop)触发任务栏

时间:2017-02-11 23:26:23

标签: java jpanel windows-10 game-development

我最近用Java编写了一个程序,它通过应用以下设置起到游戏覆盖的作用(为了在Rainbow Six:Siege等游戏中创建自定义游戏模式):

clientFrame = new JFrame("Window");
clientFrame.setSize(400, 300);

clientFrame.setUndecorated(true);
clientFrame.setBackground(new Color(0,0,0,0));
clientFrame.setAlwaysOnTop(true);

clientPanel = new JPanel();
clientPanel.setOpaque(false);

textArea_Messages = new JTextArea();
textArea_Messages.setEditable(false);
textArea_Messages.setBackground(new Color(0,0,0,0));
textArea_Messages.setFont(font);

clientPanel.add(textArea_Messages);

clientFrame.getContentPane().add(BorderLayout.CENTER, clientPanel);

clientFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
clientFrame.setVisible(true);
clientFrame.pack();

过去几个月,这对我有用。我必须在无边框窗口模式下运行游戏才能在我的游戏顶部显示面板,但我可以通过Alt + Tab退出游戏以更改一些游戏模式设置并通过在游戏窗口内单击重新输入。我的JPanel一直保持在最顶层,任务栏在比赛时消失了 今天我注意到任务栏不再隐藏了。它与我的JPanel一起保持在顶部,或者JPanel(和任务栏)不可见。我在网上搜索了几个小时试图解决这个问题并测试了一切(Repinnig每个图标,重新启动Explorer.exe,更改任务栏首选项......)。
但是,在任务管理器中选中“Allways on top”选项时,任务栏在播放时会消失!这导致我假设JPanel以某种方式使任务栏保持焦点,而任务管理器则没有 有人知道导致这个问题的原因吗?

可能相关的更多信息:
- 几天前游戏得到了更新 - 我一直在使用Classic Shell -Windows得到了一个更新,迫使我重新安装Classic Shell

我知道,我的问题听起来并不那么可怕,但是我正在为Youtube录制我的自定义游戏模式,任务栏真的很烦人。

提前致谢:)

0 个答案:

没有答案