Estoy tratando de crear una ventana de pantalla completa que cubra toda la pantalla usando Java. Esta ventana también debe tener cierta transparencia (aproximadamente 30% -50% transparente). Cuando digo pantalla completa, me refiero a que cubre todo (incluido el dock/barra de tareas/barra de menú en OSX/Linux/Windows), y cuando digo con transparencia, me refiero a una transparencia en tiempo real y no solo a una captura de pantalla pirateada. Esto es lo que soy consciente de/intenté:ventana de pantalla completa de Java con transparencia
- Uso de la API de pantalla completa de Java: mientras crea una pantalla completa verdadera, no puede tener algo de transparencia (solo color opaco). Un truco consiste en tomar una captura de pantalla de todo el escritorio y establecerlo como fondo para la ventana, pero esto significa que no se trata de transparencia en tiempo real.
- Configuración del tamaño de la ventana para que coincida con la dimensión de la pantalla: mientras llena toda la pantalla, en ciertos sistemas operativos (por ejemplo, Mac OS X) la ventana se mostrará detrás del dock/barra de menú y no encima. Sin embargo, la transparencia funciona aquí.
- Usando la API setWindowOpacity: funciona en el segundo caso, pero no en el primero (API de pantalla completa)
- Usando setBackground con alpha: funciona como setWindowOpacity, pero solo en ciertos sistemas operativos. Pero tampoco funciona con la API de pantalla completa.
- Uso JFrame/JWindow/JDialog/marco/ventana: trató cada modelo de ventana pude, sin ninguna suerte
Así que estoy preguntando si esto es posible a través de un otro truco que no soy consciente de, a continuación, Estaré feliz de escuchar sobre.
El objetivo es superponer una pantalla completa semitransparente sobre el escritorio.
Me brevemente perseguía algo similar esta semana. Esperaba crear un filtro de color. Los clics del mouse necesitarían golpear los elementos detrás del filtro y no el filtro. No investigué demasiado, así que si alguien sabe, ¡genial! – mrswadge
@mrswadge: puede agregar detectores de mouse a su ventana y luego, cuando se active el evento del mouse (por ejemplo, haga clic en), cambie la ventana y use java.awt.Robot para simular el evento (mousePress). Esto resuelve parte de tu problema. Esperemos que resuelvan la parte sobre la verdadera pantalla completa/transparencia. – ccit