Comment puis-je faire le plein écran en Java sur mac OSX
J'ai essayer et de ne pas utiliser le java en mode plein écran sur l'écran principal d'un système OSX. Tout ce que j'ai essayé je n'arrive pas à se débarrasser de la "pomme" de la barre de menu du haut de l'écran. J'ai vraiment besoin de la peinture sur la totalité de l'écran. Quelqu'un peut me dire comment se débarrasser du menu?
J'ai joint un exemple de classe qui expose le problème sur mon système, le menu est encore visible là où je m'attends à voir une vierge de l'écran.
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class FullScreenFrame extends JFrame implements KeyListener {
public FullScreenFrame () {
addKeyListener(this);
setUndecorated(true);
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
if (gd.isFullScreenSupported()) {
try {
gd.setFullScreenWindow(this);
}
finally {
gd.setFullScreenWindow(null);
}
}
else {
System.err.println("Full screen not supported");
}
setVisible(true);
}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
setVisible(false);
dispose();
}
public static void main (String [] args) {
new FullScreenFrame();
}
}
Pourquoi êtes-vous de faire de votre fenêtre en plein écran, puis immédiatement à l'appel de setFullScreenWindow(null)?
C'est la réponse. Veuillez ajouter, c'est en tant que tel, je ne peux pas résister à la tentation
C'est la réponse. Veuillez ajouter, c'est en tant que tel, je ne peux pas résister à la tentation
OriginalL'auteur Simon Andrews | 2009-07-20
Vous devez vous connecter pour publier un commentaire.
Je pense que votre problème est ici:
finally
blocs sont toujours exécutées, donc ce qui se passe ici est que vous fenêtre devient plein écran pendant un bref instant (si) et puis renonce à l'écran immédiatement.Aussi,
setVisible(true)
n'est pas nécessaire si vous avez déjà appelésetFullScreenWindow(this)
, selon le La documentation javadoc.Je voudrais donc changer de constructeur:
Notez le "..." là-dedans? C'est là quelque chose qui bloque jusqu'à ce que la fenêtre est fermée. Le coup d'essayer...enfin s'approcher de simplement gardes contre les exceptions qui pourraient garder votre demande de libérer l'écran quand il est fait. (Bizarrement, même si
setFullScreenWindow
rend la fenêtre visible, il ne bloque pas commesetVisible
. Je me demande si c'est par la conception.)Maintenant, le dispositif graphique agir comme un jframe c'est à dire vous pouvez ajouter jpannels?
OriginalL'auteur Michael Myers
Sur OS X (10.7 et supérieur), il est préférable d'utiliser le natif mode plein écran disponible. Vous devez utiliser:
où
window
est la fenêtre (JFrame
, etc) que vous souhaitez mettre en plein écranVous auriez besoin de réflexion pour tester ces classes et d'exécuter le code de droit?
La réflexion en est une. Sinon, vous pouvez utiliser un tampon pot sur la non-plateformes apple, comme est disponible ici: stackoverflow.com/a/2639395
OriginalL'auteur g.rocket
C'est un peu pédant, la réponse est de suivre le tutoriel complètement, ce qui est l'essentiel et est un peu plus large que tiennent dans un post. L'exemple ci-dessus ne fonctionne pas car il manque un
validate();
et un peu de contenu. Je soupçonne que le Java Tutoriel va pas disparaître de sitôt. Ci-dessous est une version modifiéeOriginalL'auteur user667522