Cuando una solicitud de actualización se entrega a swing (ya sea un sistema activado por ejemplo debido a un cambio de tamaño o un bloque por otra ventana o activado por la aplicación, por ejemplo, mediante una llamada al método repaint), ¿cómo se maneja esta solicitud? ¿Qué procedimiento tiene lugar en esa cosa de RepaintManager?En swing-java, ¿de dónde viene la instancia de Graphics?
Respuesta
Desde su comentario:
¿Conoce lo que sucede en peer.getGraphics()?
Eso depende de la implementación que se use.
Una aplicación es WComponentPeer
(se utiliza cuando se ejecuta en Windows), que parece utilizar dos formas para conseguir el Graphics
objeto:
Si el componente tiene una matriz de tipo
Window
(o es uno mismo) que a su vez tiene una imagen de búfer de respaldo asociada, se devuelve el objetoGraphics
de esa imagen. Esto depende del tipo de imagen, pero es más parecido a una instancia deSunGraphics2D
, creada encreateGraphics()
.De lo contrario una instancia
ScreenUpdateManager
se recupera y secreateGraphics(...)
se llama en él que a su vez devuelve una nueva instanciaSunGraphics2D
.
Tenga en cuenta que esta es solo una forma posible y depende en gran medida del conjunto de herramientas de sistema operativo, JVM y UI.
- 1. ¿De dónde viene Microsoft.Practices.ServiceLocation?
- 2. Django: ¿De dónde viene "DoesNotExist"?
- 3. ¿De dónde viene la aceleración súper lineal?
- 4. Meteor Template, ¿de dónde viene?
- 5. ¿De dónde viene '.' y '..' venir?
- 6. ¿De dónde viene el `tamaño`?
- 7. Advertencia de mal camino, ¿de dónde viene?
- 8. ¿De dónde viene el número de versión?
- 9. ¿De dónde viene el relleno de TextBox?
- 10. Cómo obtener manualmente la instancia del objeto Graphics en WinForms?
- 11. ¿De dónde viene el método Enum.valueOf (String)?
- 12. ¿De dónde viene el archivo Microsoft.CompactFramework.VisualBasic.targets?
- 13. ¿De dónde viene el 'Hola mundo'?
- 14. ¿De dónde viene este backward_warning.h #warning?
- 15. C# ¿de dónde viene el archivo dbml?
- 16. ¿De dónde viene el valor predeterminado mb_internal_encoding()?
- 17. ¿Cómo saber de dónde viene mi error?
- 18. Fragmentos del paquete onCreateView(). ¿De dónde viene?
- 19. ¿De dónde viene el término archivo plano?
- 20. ¿Cómo detectar de dónde viene la alerta de JavaScript?
- 21. ¿De dónde viene el rasgo de la palabra?
- 22. convertidores WPF: ¿de dónde viene la cultura provienen de
- 23. ¿De dónde viene la convención de nombres genéricos C#?
- 24. ¿De dónde viene la sintaxis de ensamblaje at & t?
- 25. ¿De dónde viene $ _ en este ciclo foral de Perl?
- 26. ¿De dónde viene el espacio extra en estas imágenes?
- 27. dónde viene esto: - * - coding: UTF-8 - * -
- 28. ¿hay alguna manera de averiguar de dónde viene una rama?
- 29. ¿De dónde viene el espacio extra alrededor de mi botón?
- 30. dónde viene matriz de obtener su método toList
¿Qué tan detallada lo necesita? Si es muy detallado, puede consultar el código fuente, de lo contrario, un buen lugar para comenzar sería la documentación oficial: http://www.oracle.com/technetwork/java/painting-140037.html – Thomas
Gracias, leí ambos . pero no entendí cómo se genera la instancia de * Graphics *. Seguí el pre a algunos * peer.getGraphics() * (llamado inside * Component.getGraphics() *) donde asumí que * peer * es el peer pesado (que se mencionó en tu enlace). pero allí perdí la pista. ¿sabes lo que sucede en * peer.getGraphics() *? – Untitled