Quando una richiesta di aggiornamento viene consegnata allo swing (un sistema attivato ad es. A causa di un ridimensionamento o un blocco da un'altra finestra o attivato dall'app, ad esempio mediante un metodo call to repaint()), come viene effettivamente gestita questa richiesta? Quale procedura ha luogo in quella cosa di RepaintManager?In swing-java, da dove viene l'istanza Graphics?
risposta
Dal tuo commento:
Sai cosa succede a peer.getGraphics()?
Dipende dall'implementazione peer.
Un'implementazione è WComponentPeer
(utilizzato durante l'esecuzione su Windows), che sembra utilizzare due modi per ottenere l'oggetto Graphics
:
Se il componente ha un genitore di tipo
Window
(o è uno stesso) che a sua volta ha un buffer di back immage associato, viene restituito l'oggettoGraphics
dell'immagine. Dipende dal tipo di immagine ma è più probabile un'istanzaSunGraphics2D
, creata increateGraphics()
.In caso contrario, viene richiamata un'istanza
ScreenUpdateManager
e viene chiamatocreateGraphics(...)
che a sua volta restituisce una nuova istanzaSunGraphics2D
.
Si prega di notare che questo è solo un modo possibile e dipende molto dal sistema operativo, dal toolkit JVM e UI utilizzato.
- 1. Da dove viene Enum.values ()?
- 2. Da dove viene l'UTI?
- 3. Django: Da dove viene "DoesNotExist"?
- 4. Meteor Template, da dove viene?
- 5. In AthensTutorial da dove viene la tela?
- 6. emulateTransitionEnd in bootstrap.js, da dove viene?
- 7. Da dove viene il valore predefinito mb_internal_encoding()?
- 8. Da dove viene normalmente il -DNDEBUG?
- 9. Da dove viene questo backward_warning.h #warning?
- 10. Rintracciare da dove viene emesso l'avviso?
- 11. da dove viene il termine flat-file?
- 12. Da dove viene importato il modulo?
- 13. Da dove viene il primo file binario?
- 14. Da dove viene il nome `Psycopg`?
- 15. Da dove viene prelevato servlet-api.jar?
- 16. Da dove viene il $ _ in questo ciclo Forl foreach?
- 17. Da dove viene il valore di CXX in un makefile?
- 18. WPF convertitori: da dove viene la cultura provengono da
- 19. Dove viene conservato TempData?
- 20. Dove viene dichiarato cout?
- 21. Dove viene dichiarato GetTickCount in Firemonkey?
- 22. Learning Core Graphics
- 23. Graphics Core ruotano rettangolo
- 24. Smussare un tracciato/forma in Core Graphics
- 25. Da dove viene l'archivio di file system PERSISTENT con chrome?
- 26. Dove viene salvato Eclipse l'elenco dei file da aprire all'avvio?
- 27. Da dove viene impostato Magento Set a Quote Item Price?
- 28. Per cosa e da dove viene richiamato Compiler-RT?
- 29. Uso di scene2d.ui con libgdx: da dove viene la pelle?
- 30. Da dove viene questa perdita di qualità sulle immagini?
Quanto dettagliato è necessario? Se _molto_ dettagliato, si potrebbe guardare il codice sorgente, altrimenti un buon punto di partenza sarebbe la documentazione ufficiale: http://www.oracle.com/technetwork/java/painting-140037.html – Thomas
Grazie, ho letto entrambi . ma non ho capito come viene generata l'istanza * Graphics *. Ho tracciato il pre per alcuni * peer.getGraphics() * (chiamato all'interno * Component.getGraphics() *) dove ho assunto * peer * è il peer pesante (che è stato menzionato nel tuo link). ma lì ho perso la traccia. sai cosa succede in * peer.getGraphics() *? – Untitled