2012-09-20 28 views
6

Así que estoy usando Ubuntu y cuando quiero ingresar al modo de pantalla completa en Java, aparece una ventana normal con tamaño máximo de pantalla, en lugar de una ventana de pantalla completa sin barra de título, etc. Admito, yo Ni siquiera estoy seguro de cómo debería ser el modo de pantalla completa en Java, porque no lo he probado en ningún otro sistema operativo. Pero supongo que debería ser una pantalla sin barra de título. ¿Alguien más que tiene este problema?Modo de pantalla completa de Java no funciona en Ubuntu

Este es el código que uso. ; muy claro.

public static void main(String[] args) { 
    GraphicsEnvironment env = GraphicsEnvironment 
      .getLocalGraphicsEnvironment(); 
    GraphicsDevice vc = env.getDefaultScreenDevice(); 
    JFrame window = new JFrame(); 
    window.setUndecorated(false); 
    window.setResizable(false); 
    vc.setFullScreenWindow(window); 
} 
+3

¿Qué devuelve vc.isFullScreenSupported()? – Adam

+0

¿Quizás lo intente en otro sistema operativo y luego actualice su pregunta? – JMK

+0

Ejecuté su código en Windows 7 y apareció el mismo fenómeno: Ventana del tamaño completo de la pantalla, con barra de título.Creo que este es el comportamiento esperado. –

Respuesta

3

en Win7, con este código (que fija la bandera sin decorar a cierto según lo sugerido por @Gilberto y añadió un panel rojo) parece que funciona bien. Si no funciona en Ubuntu, entonces se puede decir que el modo de pantalla completa no es compatible:

import java.awt.Color; 
import java.awt.GraphicsDevice; 
import java.awt.GraphicsEnvironment; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class Main { 
    public static void main(String[] args) { 
     GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     GraphicsDevice vc = env.getDefaultScreenDevice(); 
     JFrame window = new JFrame(); 
     JPanel comp = new JPanel(); 
     comp.setBackground(Color.RED); 
     window.add(comp); 
     window.setUndecorated(true); 
     window.setResizable(false); 
     vc.setFullScreenWindow(window); 
    } 
} 
+0

@trashgod sí, realmente no he agregado una función de salida ;-) –

+0

Funciono, pero aún veo la barra de título, pero no hay opciones de cerrar o cambiar el tamaño. Así que eso es bueno :) – Jon

+0

@Jon Eso es raro. ¿Seguro que llamaste 'setUndecorated (true)' en lugar de 'false'. Según el comentario de trashgod, debería funcionar correctamente en Ubuntu también. –

4

En Ubuntu (probablemente otra Linuxes también) no funciona. El modo de pantalla completa en Java no cubre la pantalla completa, pero deja las barras de herramientas fuera. Siempre, lo que sea que hagas.

Probé los dos ejemplos anteriores y los ejemplos de la FSEM oficial tutorial y alguna aplicación que sé están usando Java/Swing y el modo de pantalla completa (FreeCol y TripleX) y nadie fue capaz de cubrir las áreas de trabajo/Barra de herramientas de la pantalla.

Mi configuración es Ubuntu 12.10 con OpenJDK o SUN-JRE 1.7.0_09 y con Unity o Gnome. Curiosamente, la llamada java a isFullScreenSupported() devuelve verdadero. Entonces, aunque el JRE de Java dice que es compatible con la pantalla completa exclusiva, no es así.

Algunas explicaciones posibles se pueden dar en otra question.

0

Aunque esto podría no ser aplicable en la mayoría de los casos, me gustaría compartir mi solución a este problema.

En mi caso, frecuentemente necesito desarrollar aplicaciones Java/Scala para nuestra institución universitaria (pruebas psicológicas). Para evitar este problema, decidimos instalar el pez sierra en nuestra PC experimental.

Si esta solución es aplicable a sus necesidades, puede instalar (un pez sierra extremadamente desactualizado) a través de las instalaciones de Ubuntu (Software Center, Aptitute, apt-get) o - lo que prefiero - instalar o compilar un up-to- fecha de pez sierra de forma manual.

Otros administradores de ventanas y/o escritorios pueden dar una funcionalidad similar, pero experimentamos artefactos cuando probamos XFCE o LXDE con paneles deshabilitados/eliminados.

1

Este hilo es muy antiguo pero sigue apareciendo en resultados de búsqueda REALES pero con respuestas incorrectas. Así que publicaré la solución real.

oscilación pantalla completa se puede ajustar con el setExtendedState ( función), no con el setFullScreenWindow ( función)!

JFrame myFrame = new JFrame(); 
.... 
myFrame.setExtendedState(MAXIMIZED_BOTH); 

Entonces ua tienen una ventana de pantalla completa decorada, con todos los botones y una barra de herramientas óptica correcta y funciona bien con Ubuntu y cualquier otro sistema operativo.

+0

Sí. Esto funciona. – ice1000

Cuestiones relacionadas