gentoo linux, java, software libre y otras hierbas
abr, 17 2009 - 11:11 am

Ejemplo fullscreen y cómo crear ventanas sin bordes en Java

Este es un tip bastante útil que nos permitirá poner las ventanas de nuestras aplicaciones en Fullscreen (pantalla completa), y de paso aprenderemos a crear ventanas sin bordes (lo cual es útil si queremos hacer algún splash de inicio para nuestra aplicación).

En el siguiente ejemplo usaremos básicamente los siguientes métodos y clases:

  • Método setUndecorated de la clase JFrame, el cual recibe un parámetro boolean. Si le enviamos true, quitará los bordes de la ventana.
  • La clase GraphicsDevice nos permite manejar objetos que representan dispositivos gráficos, como la pantalla del computador. En este caso creamos el  objeto con la instrucción GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); que nos devuelve un objeto que representa la pantalla en donde se está mostrando nuestro programa.
  • El método setFullScreenWindow, de la clase GraphicsDevice, nos permite poner nuestro programa en pantalla completa. Además, aunque no lo usemos en el ejemplo, contamos con el método isFullScreenSupported que nos permite saber si es posible poner la ventana en modo fullscreen o no.

Código fuente del ejemplo…

import javax.swing.*;
import java.awt.GraphicsEnvironment;
import java.awt.GraphicsDevice;
import java.awt.event.*;

public class EjemploFullscreen extends JFrame implements ActionListener{
        private JButton boton;
        private boolean estaFull = false;
        static GraphicsDevice grafica=
                GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        public EjemploFullscreen() {
                super("Ejemplo pantalla completa en Java");

                boton = new JButton("Presioname");
                boton.addActionListener(this);
                getContentPane().add(boton);

                setSize(640, 400);
                setUndecorated(true);
                setVisible(true);
        }

        public static void main(String[] args) {
                new EjemploFullscreen();
        }

        public void actionPerformed(ActionEvent e) {
                if(!estaFull)
                        grafica.setFullScreenWindow(this);
                else
                        grafica.setFullScreenWindow(null);
                estaFull = !estaFull;
        }
}

Descargar código fuente

15 Comentarios | deja el tuyo

2 enlaces entrantes

13 Comentarios en “Ejemplo fullscreen y cómo crear ventanas sin bordes en Java”

  1. (Colombia) Cristian Castiblanco: Ejemplo fullscreen y cómo crear ventanas sin bordes en Java http://tinyurl.com/clo965

  2. pablo dice:

    lo unico que se, es que no se java…
    jeje nose donde lei eso.

    che quiero saber como pones los codigos en texto sin formato en la entrada
    un abrazo

  3. Cristian dice:

    Más ejemplos de Java… Ejemplo fullscreen y cómo crear ventanas sin bordes en Java | http://tinyurl.com/cmqnfb

  4. Omar dice:

    Hola Hace poco instalé, en el flisol de Medellín 2009 Ubuntu 9.04 pero mi problema es que desde es día no tengo conección a internet, asi que debo serguir desde el OS Wind…., en que me puedes ayudar? Gracias.

    • alexander dice:

      intente lo siguiente

      ifconfig

      y luego

      service status network

      si sale en espera o en stop
      ejecute lo siguiente

      service network start
      y creo que eso solucionaria el problema

  5. luis dice:

    Hola a todos, saludos y felicitaciones, esta web tiene lo suficiente para aprender Java.
    Me gustaría saber cómo autoajustar los formularios a la reslucion de distintos monitores, es decir; que se acoplen tanto formularios como objetos incluidos al cambio de resoluciones. Gracias y estamos en contacto

  6. Sergio Reynaga dice:

    Hola que tal.
    Utilice ese codigo y todo muy bien.. pero tengo una duda al respecto por que el fondo del panel es de un color azul pero como degradado… a todos les aparece asi… ese color se lo puedo cambiar?… de antemano gracias

  7. jesus dice:

    Está muy bueno el aporte eh, me sirvió de mucho, se agradece….!

  8. Leandro dice:

    Este código no me corre bien… Estoy trabanjo en netbeans 6.9.1 y parece que tu código no lo soporta… Por favor me puedes ayudar con un código o lugar donde pueda conseguir?? ya que no hay nada en los foros

    • Cristian dice:

      El código es independiente del IDE que se use, bien sea Netbeans o Eclipse o el bloc de notas, etc. La pregunta acertada, si quisieras recibir ayuda, sería: “No funciona el código, y este es el error que me sale: blah blah”.

      • Leandro dice:

        gracias por tu pronta respuesta… tambien tuve que mencionar que en Netbeans soy nuevo y java vi hace mucho tiempo atrás… me pareció nuevo el super() ya que nunca lo había visto y tuve que leer para saber que era.. Ahora te comento. Copie tu codigo y en el frame coloco labels, botones pero no me muestra lo que añadí… talvez sabes que pasa?? y te puedo molestar que me ayudes explicando este código:
        static GraphicsDevice grafica= GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();

        • wiZa dice:

          wenas, estoy probando colocar en una aplicación que estoy desarrollando una sección en pantalla completa, pasa que netbeans genera mucho codigo para controlar la posición de los controles en el formulario, según como lo acomodes en el modo gráfico saldra o no en la ventana, utilice un codigo alternativo para mi aplicación, dependiendo del caso puede que sea mejor o peor..
          Operaciones() {
          this.setUndecorated(true);
          initComponents();
          this.settSize(Toolkit.getDefaultToolkit().getScreenSize());
          this.setVisible(true);
          this.setBackground(Color.YELLOW);
          this.toFront();
          this.setAlwaysOnTop(true);
          } //constructor

  9. SRG dice:

    Muchas gracias, justo lo que buscaba.

¡Déjanos tu comentario!