Estoy escribiendo una aplicación que se pretende ejecutar en una configuración de monitor dual, con un JFrame "Pantalla" en pantalla completa en un monitor y un JFrame "Control" en el otro monitor, enviando instrucciones a la pantalla. Probé dos métodos distintos para configurar la pantalla completa; el éxito de cada uno parece depender del sistema operativo.Java setFullScreenWindow() mantener en la parte superior
display.setUndecorated(true);
display.setExtendedState(JFrame.MAXIMIZED_BOTH);
Funciona en Windows, pero el JFrame se oculta debajo de la base/paneles en OS X y Linux.
Mi otro método, utilizando
GraphicsDevice.setFullScreenWindow(display);
Obras en los tres sistemas operativos que he intentado, pero en Windows, centrándose la ventana de control en el otro monitor hace que la piel Ventana de visualización, y llamando
display.setAlwaysOnTop(true);
No soluciona el problema. Soy parcial al método GraphicsDevice
porque no tengo que lidiar con los problemas en OS X o Linux, y espero que el problema de Windows sea una solución simple. ¿Lo es?
Gracias por responder, pero ¿qué se supone que debo hacer con los valores de ancho y alto de ese ciclo for? Intenté usar 'setAlwaysOnTop (true);', pero eso no funcionó cuando lo probé. No tengo acceso a Windows durante una hora más o menos, pero noté que dijiste "Si la ventana está visible", ¿entonces tal vez lo llamé antes de configurar la ventana? Lo intentaré pronto y acepto tu respuesta si funciona. – BitFiber
Demasiado tarde para editar mi comentario ... pero 'setAlwaysOnTop (true);' todavía no funciona en Windows. Sin embargo, encontré una solución en el uso de 'System.getProperty (" os.name ");' para comprobar si el sistema operativo actual es Windows, por lo que puedo usar el método 'setExtendedState'. – BitFiber
Lo siento, ya que no funcionó para usted, pero gracias por la información abt el trabajo alrededor .... –