Error al hacer un programa en Full Screen mode

Iniciado por -Localhost-, 31 Julio 2010, 06:47 AM

0 Miembros y 1 Visitante están viendo este tema.

-Localhost-

Hola a todos,

Estoy intentando hacer un programa que se ejecute en Full Screen o que ocupe todo el tamaño de la pantalla (incluyendo la barra de inicio).

Uso este código:
Código (java) [Seleccionar]
import java.awt.*;

public class ventana extends Window {

GraphicsDevice myDevice;

public ventana (){

super(new Frame());
try{myDevice.setFullScreenWindow(this);}catch(Exception e){System.out.println(e);}
setVisible(true);
}

public static void main(String args[]){

new ventana();
}
}

Y me da este error:
Código (java) [Seleccionar]
java.lang.NullPointerException

Alguien sabría decirme ¿por qué?

Muchas gracias de antemano.

egyware

Hola

GraphicsDevice myDevice;

En que momento incialisas esa variable, en ninguna parte. Busca la forma de inicializarla.
En este instante no me acuerdo pero algun usuario de foro de puede ayudar.

Saludos

Leyer

Cuando hace esto super(new Frame());, no estas cuidando la memoria

Código (java) [Seleccionar]
import java.awt.*;

public class ventana extends Window {
private static final long serialVersionUID = 1L;
   GraphicsDevice myDevice;
public ventana (){

super(new Frame());
try{
GraphicsEnvironment environment=GraphicsEnvironment.getLocalGraphicsEnvironment();
myDevice = environment.getDefaultScreenDevice();
myDevice.setFullScreenWindow(this);

}catch(Exception e){System.err.println(e);}
setVisible(true);
}
public static void main(String args[]){
new ventana();
}
}

egyware

@Leyer
Un poco de explicación no estaria mal

Aprovechando que colocaste el codigo:
GraphicsEnvironment environment=GraphicsEnvironment.getLocalGraphicsEnvironment();
Obtenemos el entorno grafico, con el podemos hacer varias cosas aparte de pasar a modo de pantalla completa

myDevice = environment.getDefaultScreenDevice();
Obtenemos la pantalla principal de tu equipo, este objeto myDevice representa al monitor mismo.

myDevice.setFullScreenWindow(this);
Ya lo sabes, pasas a modo pantalla completa

Saludos!

Leyer

Ya te habia dicho que soy malo comentando el codigo :xD

-Localhost-


Jeje, muchas gracias por el código y la explicación, sólo me quedaron 2 dudas:

La primera es que no entiendo lo que dijo LEYER
Cita de: LEYER en 31 Julio 2010, 08:12 AM
Cuando hace esto super(new Frame());, no estas cuidando la memoria

¿Puedes decirme por qué sucede eso que dices? ^^U no sé a que te estás refiriendo con lo de que no cuido la memoria jeje...

Y la segunda duda que me vino es si esto se ejecuta en un applet.

Un saludo y gracias por contestar.

Leyer

#6
No veo por que no.

Sobre lo que te dije anteriormente,cuando haces esto super(new Frame());, estas creando una nueva instancia de Frame, el cual es un desperdicio ya que solo lo usas solo para centrar, para eso puedes hacer, setLocationRelativeTo(null);

UN saludo.