अपने अवलोकन से मैंने पाया कि ऑल्वेज़ऑनटॉप विशेषाधिकार नवीनतम प्रक्रिया को दिया जाता है जो हमेशा शीर्ष पर रहने का अनुरोध करता है।
इसलिए, यदि आपके पास एक एप्लिकेशन है जो setAlwaysOnTop(true)
और बाद में एक अन्य एप्लिकेशन इस विकल्प का उपयोग करता है, तो विशेषाधिकार दूसरे आवेदन को दिया जाता है। इस के आसपास काम करने के लिए मैंने setAlwaysOnTop(false)
और फिर से setAlwaysOnTop(true)
जब भी कोई भी खिड़की चालू खिड़की के ऊपर आती है, सेट किया है ।
मैंने इसमें जांच की wordweb
है windows
। WordWeb उन अनुप्रयोगों में से एक है, जो AlwaysOnTop
विकल्प का उपयोग करता हैOS
मुझे यकीन नहीं है कि यह आपके गेम परिदृश्य के साथ ठीक से काम करता है।
चेतावनी : मैं दुष्प्रभावों से अवगत नहीं हूँ।
यहाँ कोड उदाहरण है:
import java.awt.event.*;
import javax.swing.*;
public class MainWindow extends JFrame implements WindowFocusListener
{
public MainWindow()
{
addWindowFocusListener(this);
setAlwaysOnTop(true);
this.setFocusable(true);
panel = new JPanel();
setUndecorated(true);
setLocation(X,Y);
setExtendedState(MAXIMIZED_BOTH);
setVisible(true);
}
public void windowGainedFocus(WindowEvent e){}
public void windowLostFocus(WindowEvent e)
{
if(e.getNewState()!=e.WINDOW_CLOSED){
setAlwaysOnTop(false);
setAlwaysOnTop(true);
System.out.println("focus lost");
}
}
private JPanel panel;
private static final int WIDTH = 200;
private static final int HEIGHT = 200;
private static final int X = 100;
private static final int Y = 100;
public static void main(String args[]){
new MainWindow();}
}