Hola a todos, tengo un problema que no consigo resolver.
Quiero dibujar un rectángulo en un JLabel y moverlo, consigo hacerlo pero me falla en varias partes y no sé por qué.
Os pego código:
public class Figuras extends JFrame {
private int x;
private int y;
public Figuras()
{
super("Holaaa");
Container contentPane = super.getContentPane();
JLabel label = new JLabel("Holaasfdas");
contentPane.add(label);
super.setSize(600, 600);
super.setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) { mover(); }
});
x = 40;
y = 40;
}
public void mover()
{
x += 20;
y += 20;
repaint();
}
Aquí creo que JFrame, añado un JLabel, le doy un tamaño, lo pongo visible y añado el addKeyListener. Las variables "x" e "y" son para mover el rectángulo como se puede ver en el método mover();.
Luego sobreescribo el método paint(Graphics g):
public void paint(Graphics g)
{
paintComponents(g);
g.setColor(Color.black);
g.drawRect(this.x, this.y, 100, 50);
g.setColor(Color.green);
g.fillRect(40, 80, 100, 50);
}
El segundo rectángulo lo dibujo pero no hago nada con él.
Pues tengo 2 problemas, el primero es que el KeyListener no me funciona bien, cuando creo el objeto, no funciona nada cuando pulso una tecla, además, no me aparecen dibujados los dos rectángulos. En cambio, cuando minimizo la ventana o cambio el foco, me aparecen los dos rectángulos y me funciona perfectamente el KeyListener, se me mueve el rectángulo sin problemas, etc.
Llevo más de 1 hora buscando por internet, intenté hacer de todo y nada, no consigo arreglarlo, estoy perdiendo el tiempo de una manera increíble...
Agradecería mucho vuestra ayuda, de verdad.
Un saludo y gracias.