Traduction officieuse du tutorial de Michael
Martak. Dont je n'ai pas trouvé
l'e-mail: si ca dérange quelqu'un, je veux bien enlever
cette traduction.
La version originale est sur
java.sun.com
(et ici un zip contenant la
traduction pour la regarder offline )
Full-Screen Exclusive Mode
Les programmeurs qui utilisent l'API DirectX de Microsoft sont peut-être familier avec le mode plein-écran. D'autres programmeurs ne connaissent peut-être pas ce concept. Dans les 2 cas, le mode plein écran est une nouvelle et puissante fonction du J2SETM version 1.4 qui permet au programmeur de suspendre le système de fenêtres de telle sorte que l'affichage puisse être fait directement sur l'écran. Dans les programmes Java possédant une interface graphique (GUI) , l'AWT est responsable de la redirection des paint events provenant de l'OS, a travers l'event dispatch thread, et en appelant la methode Component.paint quand il le faut. En fait, dans le mode plein écran, le programme dessine lui-même de manière active. De plus, une application graphique traditionnelle est limité à la profondeur de bit (bit depth = nombre de bits par pixels) et à la taille de l'écran définis par l'utilisateur. Dans une application en plein écran, le programme peut les controler. Finalement, de nombreuses techniques avancées, telles que le page flipping (décrit ci-dessous) et le stereo buffering (pour les systèmes qui utilisent des images différentes pour chaque oeil) ne peuvent être utilisées, sur certaines platformes, que si l'application est d'abord en mode plein écran
Pour bien comprendre le mode
plein écran, vous devez d'abord comprendre les principes de
base des images accélérées en hardware.
L'interface VolatileImage contient une surface qui peu ou
non tirer parti de l'accélération matérielle. De
telles surfaces peuvent perdre leur accélération
matérielle ou leur mémoire sous le controle de l'OS
(d'où le nom volatile). Voir le tutorial sur VolatileImage
(bientot disponible) pour plus d'information sur les images
volatiles.
Le mode plein écran est manipulé par un objet java.awt.GraphicsDevice. Pour une liste des écrans graphiques disponibles (simple ou multi-moniteurs), vous pouvez appeler la méthode getScreenDevices dans le java.awt.GraphicsEnvironment local; Pour l'écran par défaut (le seul dans un system avec un seul moniteur), vous pouvez appeler la méthode getDefaultScreenDevice.
Une fois que vous avez le matériel graphique, vous pouvez appeler une des méthodes suivantes:
Voici quelques astuces pour programmer en mode plein écran.
Vérifier le retour de isFullScreenSupported avant d'entrer en plein écran. Si ce mode n'est pas supporté, les performances seront dégradées.
Entrer et sortir du mode plein écran est plus sur si on utilise une clause try...finally.Ce n'est pas seulement une bonne façon de programmer, cela empêche votre programme de rester en mode plein écran plus longtemps qu'il ne le faudrait.
GraphicsDevice myDevice; Window myWindow; try { myDevice.setFullScreenWindow(myWindow); ... } finally { myDevice.setFullScreenWindow(null); }
Il est préférable pour la plupart des applications en plein écran d'utiliser des fenêtres non décorées. Pour enlever les décorations dans une frame ou un dialog, il y a la méthode setUndecorated.
Les applications en plein écran ne doivent pas être redimensionnables, car le fait de redimensionner peut engendrer un comportement imprévisible (ou meme dangereux).
Pour des raisons de sécurité, l'utilisateur doit accorder la permission fullScreenExclusive si le mode plein écran est utilisé dans une applet.