metodo llamar ejemplo como java swing paintcomponent

java - llamar - Diferencia entre pintura, pinturaComponente y pinturaComponentes en Columpio



paintcomponent java ejemplo (2)

¿Cuál es la diferencia real entre paint() , paintComponent() y paintComponents() en Java Swing?

Traté de entender lo que se explica en los documentos de Oracle, pero no estoy seguro.


Le puede interesar leer Pintura en AWT y Swing

Una cita:

Las reglas que se aplican a los componentes livianos de AWT también se aplican a los componentes Swing; por ejemplo, se llama a paint () cuando es el momento de renderizar, excepto que Swing factoriza la llamada paint () en tres métodos separados, que se invocan en siguiente orden:

protected void paintComponent(Graphics g) protected void paintBorder(Graphics g) protected void paintChildren(Graphics g)

Los programas Swing deben anular paintComponent () en lugar de anular paint (). Aunque la API lo permite, generalmente no hay ninguna razón para anular paintBorder () o paintComponents () (y si lo hace, ¡asegúrese de saber lo que está haciendo!). Este factoraje hace que sea más fácil para los programas anular solo la parte de la pintura que necesitan extender. Por ejemplo, esto resuelve el problema de AWT mencionado anteriormente donde una falla al invocar super.paint () impidió que aparecieran los niños livianos.


  • AWT, anula la paint() .
  • Swing contenedor de nivel superior (los egs son JApplet , JFrame , JWindow , JDialog ..), anula la paint() . Pero hay una serie de buenas razones para no pintar en un TLC. Un tema para una pregunta separada, tal vez.
  • El resto de Swing, anula paintComponent() .
  • Ni anular ni llamar explícitamente a paintComponents() , dejar que la API lo llame cuando sea necesario.

Asegúrese de utilizar también la notación @Override siempre que anule un método.

Si lo hace, podría insinuar el problema de tratar de anular paintComponent(..) en un JFrame (no tiene dicho método), que es bastante común de ver.