2012-07-29 7 views

Respuesta

18

Calling repaint() en cualquier componente se añada una solicitud al repinte gerente para pintar ese componente. Si las condiciones son correctas, el administrador se encargará de llamar al método paint(...) del Componente. Como el método de pintura de un Componente llamará al paintComponent(...), paintBorder(...) y paintChildren(...), tendrá el componente pintar en sí mismo, su borde y pintura en cascada recursivamente a todos sus niños, sus hijos, los hijos de sus hijos, etc. Llamar esto a JFrame causará esta cascada para que ocurra a lo largo de toda la ventana de nivel superior, mientras que llamarlo a un subcomponente causará una repintura de ese componente y sus elementos secundarios solamente.

Tenga en cuenta que llamar al repaint() no garantiza que el administrador de repintado pintará el componente, especialmente si hay solicitudes apiladas. Para obtener más información sobre los detalles, lea Painting in AWT and Swing.

9

1. Cuando se llamarepaint() entonces el método Evento thread encargado notifica a todos los componentes, y luego cada componente llama a su método depaintComponent().

2. Calling JPanel.repaint() tendrá todos los componentes dentro de la JPanel arepaint(), y llamando JFrame.repaint() tendrá todos los componentes dentro del JFrame arepaint().

3. llamada JFrame.repaint() para volver a pintar el JPanel también sin la necesidad de JPanel.repaint() ....

2

En resumen,

  • JPanel.repaint() se vuelva a pintar en sí y sus hijos.
  • JFrame.repaint() volverá a pintar y sus hijos. Pero dado que JFrame es la base, esto volverá a pintar cada componente dentro.

Consulte "@Hovercraft Full Of Eels" para obtener más información.