Java - JPanel y paint() Me va a explotar la cabeza.

 
Vista:

JPanel y paint() Me va a explotar la cabeza.

Publicado por Jordi (135 intervenciones) el 30/09/2017 02:15:17
La duda es facil de explicar:
Si defino un método paint() en un JPanel no puedo hacerle @Override, supongo que la classe no tendrá el método definido. Hasta ahí bien suponiendo que sea lo que doy por echo. Lo raro viene cuando al instanciar la clase y meterla dentro de una ventana lo que hay dentro del paint() se ejecuta. Es que el JFrame tiene la capacidad de analizar si un componente tiene paint() o no? Si puede hacerlo cómo se hace? Suponiendo que se pueda hacer, es una muy mala práctica?
Dejo el código de la clase que extiende de JPanel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ImatgeBandera extends JPanel{
 
	public void paint(Graphics g){
 
		Dimension dimensio = getSize();
 
		ImageIcon banderaAux = new ImageIcon(getClass().getResource("/Codig/Bandera.png"));
		ImageIcon bandera = new ImageIcon(banderaAux.getImage().getScaledInstance(dimensio.width, dimensio.height, Image.SCALE_DEFAULT));
		g.drawImage(bandera.getImage(), 0, 0, dimensio.width, dimensio.height, null);
 
		setOpaque(false);
		super.paintComponent(g);
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

JPanel y paint() Me va a explotar la cabeza.

Publicado por Tom (1831 intervenciones) el 30/09/2017 10:39:37
Define "no puedo hacerle @Override".
@Override es una "anotación" que fuerza al compilador (o al IDE) a que muestre un error si la "signatura" del método no coincide.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JPanel y paint() Me va a explotar la cabeza.

Publicado por Jordi (135 intervenciones) el 30/09/2017 12:28:15
Espero no haber dicho la tontería del siglo.
Con lo de Override me refería a que no me deja hacer la anotación, por lo que supuse que el método no existe en JPanel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JPanel y paint() Me va a explotar la cabeza.

Publicado por Tom (1831 intervenciones) el 30/09/2017 13:09:21
Pues debería dejarte, si no has cometido algún otro error ...
Esto compila sin problemas:

1
2
3
4
5
6
7
8
import java.awt.Graphics;
import javax.swing.JPanel;
/* */
public class Syntax extends JPanel {
	@Override
	public void paint(Graphics gr) {
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar