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:
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
0