Come programmare una modalità a schermo intero in Java?
-
02-07-2019 - |
Domanda
Vorrei che la mia applicazione avesse una modalità a schermo intero. Qual è il modo più semplice per farlo, ho bisogno di una libreria di terze parti per questo o c'è qualcosa nel JDK che lo offre già?
Soluzione
Prova la API in modalità esclusiva a schermo intero . È stato introdotto nel JDK nella versione 1.4. Alcune delle funzionalità includono:
- Modalità esclusiva a schermo intero : consente di sospendere il sistema di finestre in modo che il disegno possa essere eseguito direttamente sullo schermo.
- Modalità di visualizzazione : composta da dimensioni (larghezza e altezza del monitor, in pixel), profondità in bit (numero di bit per pixel) e frequenza di aggiornamento (con che frequenza si aggiorna il monitor) .
- Rendering passivo vs. attivo - la pittura mentre si è nel loop principale dell'evento usando il metodo paint è passiva, mentre il rendering nel proprio thread è attivo.
- Doppio buffering e capovolgimento della pagina - Un disegno più uniforme significa prestazioni percepite migliori e un'esperienza utente molto migliore.
- BufferStrategy e BufferCapabilities - classi che ti consentono di disegnare su superfici e componenti senza dover conoscere il numero di buffer utilizzati o la tecnica utilizzata per visualizzarli e aiutarti a determinare le capacità della tua grafica dispositivo.
Esistono diversi esempi di modalità esclusiva a schermo intero nel tutorial collegato.
Altri suggerimenti
Metodo JFrame setUndecorated (true)
L'ho fatto usando JOGL quando ho un'interfaccia utente OpenGL a schermo intero per un gioco. È abbastanza facile Credo che la funzionalità sia stata aggiunta anche a Java con la versione 5, ma è così tanto tempo che ho dimenticato come farlo (modifica: vedi la risposta sopra per come).
Usa questo codice:
JFrame frame = new JFrame();
// set properties
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setUndecorated(true);
frame.setVisible(true);
Assicurati che setUndecorated ()
preceda setVisible ()
o che non funzionerà.
Dipende molto da cosa stai usando per visualizzare la tua interfaccia, ad esempio AWT / Spring o OpenGL ecc.
Java ha un'API in modalità esclusiva a schermo intero - guarda questo tutorial di Sun .