olá, sou iniciante em java então meu código pode não ser muito bom, mas gostaria de saber porque o KeyReleased não está trocando a imagem, eu estava tentando fazer esse código que vi no youtube e o objetivo era que quando eu deixasse de clicar em alguma tecla a JLabel que tinha o gif do homem aranha(spiderM) mudasse para a imagem do homem aranha parado(spiderP), porém isso não acontece, vou botar o código abaixo:
package grafico;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class jogoaranha {
int posx=300, posy=300;
ImageIcon muro = new ImageIcon(getClass().getResource("muro2.jpg"));
ImageIcon spiderM = new ImageIcon(getClass().getResource("spiderM.gif"));
ImageIcon spiderP = new ImageIcon(getClass().getResource("spiderP2.png"));
JLabel lmuro = new JLabel(muro);
JLabel lspider = new JLabel(spiderP);
JFrame sp = new JFrame();
public jogoaranha(){
editarjanela();
editar();
movimento();
}
public void editar(){
lmuro.setBounds(0,0,800,683);
lspider.setBounds(posx, posy, 103, 202);
}
public void movimento(){
sp.addKeyListener(new KeyAdapter(){
public void KeyReleased(KeyEvent e){
lspider.setIcon(spiderP);
}
public void keyPressed(KeyEvent e){
lspider.setIcon(spiderM);
if(e.getKeyCode()==38){
posy-=20;
}
if(e.getKeyCode()==40){
posy+=20;
}
if(e.getKeyCode()==37){
posx-=20;
}
if(e.getKeyCode()==39){
posx+=20;
}
lspider.setBounds(posx, posy, 103, 202);
}
});
}
public void editarjanela(){
sp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sp.setSize(800,700);
sp.setLocationRelativeTo(null);
sp.setVisible(true);
sp.setLayout(null);
sp.add(lspider);
sp.add(lmuro);
}
public static void main(String[] args){
new jogoaranha();
}
}