Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con paint de JFrame

Estas en el tema de Duda con paint de JFrame en el foro de Java en Foros del Web. Hola, estoy leyendo algo de java y tengo un par de preguntillas sobre la clase JFrame. Bueno en primer lugar tengo entendido que dicha clase ...
  #1 (permalink)  
Antiguo 24/08/2011, 14:24
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 1 mes
Puntos: 3
Duda con paint de JFrame

Hola, estoy leyendo algo de java y tengo un par de preguntillas sobre la clase JFrame. Bueno en primer lugar tengo entendido que dicha clase contiene una serie de metodos y atributos que permiten al programador mostrar una ventana. Ahora bien, dicha clase contiene un metodo heredado: public void paint (Graphics g); Si yo creo un JFrame, cuando se llama al metodo paint? tengo que llamar al metodo repaint o se llama el solo? quizas cuando se utiliza algunas funciones como setVisible o setSize, se llama implicitamente a paint ()?

Un saludo!

Última edición por Checho360; 24/08/2011 a las 15:35
  #2 (permalink)  
Antiguo 24/08/2011, 20:50
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Duda con paint de JFrame

bueno yo aconsejo usar el repaint mas que nada en un JPanel, pero tambien se puede en JFrame, el asunto es ke el panel tiene otra cosilla de buffer que permite cargar mas rapido.....

pues tu debes sobreescribir el metodo public void paint(Graphics g) y dentro de el pues defines todo lo ke vallas a dibujar, cuando hagas un cambio en otro metodo, solo llmaras a repaint() y el se encarga de pues valla la redundancia repintar lo que tengas en el metodo paint......

almenos es lo que tengo entendido
  #3 (permalink)  
Antiguo 27/08/2011, 01:34
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 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

Etiquetas: jframe, paint
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.