import java.awt.*;
import java.awt.event.*;
import java.util.Date;

import javax.swing.*;

/**
 * @author Remi Forax
 *
 */
public class FullClockExample {

  private static GraphicsDevice findFullScreenDevice() {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] gs = ge.getScreenDevices();
    for (int j = 0; j < gs.length; j++) { 
      GraphicsDevice gd = gs[j];
      
      if (gd.isFullScreenSupported())
        return gd;
    }
    
    throw new UnsupportedOperationException("no full screen device");
  }

  public static void main(String[] args) throws InterruptedException {
    
    final GraphicsDevice device=findFullScreenDevice();
    
    final JFrame frame=new JFrame(device.getDefaultConfiguration());
    
    final JLabel label=new JLabel();
    label.setOpaque(true);
    
    final Timer timer=new Timer(900,new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        label.setText(new Date().toString());
        label.requestFocusInWindow();
      }
    });
    timer.start();
    
    label.addKeyListener(new KeyAdapter() {
      public void keyTyped(KeyEvent e) {
        device.setFullScreenWindow(null);
        timer.stop();
        frame.dispose();
      }
    });
    
    frame.getContentPane().add(label);
    frame.setIgnoreRepaint(true);
    frame.setUndecorated(true);

    device.setFullScreenWindow(frame);

    /*try {
      
      Thread.sleep(5000);
    } finally {
      device.setFullScreenWindow(null);
    }*/
  }
}
