Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/08/2011, 01:34
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Duda con paint de JFrame

Hola:

paint() es el que dibuja el componente. Java se encarga de llamarlo automáticamente cuando sea necesario (bien porque la ventana se hace visible, se redimensione, etc, etc). Si quieres dibujar tú algo propio en la ventana (usando el Graphics que te pasan), debes hacer tu propio método paint(). Si quieres que se siga viendo lo que había además de lo tuyo, debes llamar a su vez a super.paint() antes de ponerte a dibujar tus propias cosas.

Si cambias el contenido de la ventana (los datos que se están mostrando), puede ser necesario o no llamar a repaint(). Este repaint() avisará a java de que la ventana necesita repintado y java llamará a paint(). Te comento que puede ser o no necesario la llamada a repaint(), ya que hay métodos de los componentes java que ya hacen automáticamente estas llamadas. Por ejemplo, si a un JLabel le cambias el texto con setText(), no es necesario llamar a repaint(). Si llamas a setVisible(), tampoco es necesario llamar a repaint(), si cambias los datos de un JTable con los métodos del JTable tampoco, etc, etc.

Hay un caso extraño y es cuando añades componentes (JLabel, JButton, etc) a una ventana que ya es visible. En este caso es necesario llamar a updateUI() para provocar el repintado de todo y que se vean dichos componentes.

Se bueno.
__________________
Apuntes Java
Wiki de Programación