Что я хочу, так это то, что нажмите «A», «S», «D» и «W», символ перемещается в соответствующие клавиши направлений.Ошибка при загрузке нового изображения в jlabel во время перемещения
Проблема в том, что каждый раз, когда я меняю направление, я меняю изображение JLabel (это стрелка).
Это действительно хорошо работает, но каждый раз, когда изображение изменяется, JLabel возвращается на второе место по умолчанию. Затем JLabel продолжается с того места, где он был.
Вот код.
private int pX;
private int pY;
public MovePj() {
initComponents();
pX=labelPj.getX();
pY=labelPj.getY(); }
private void formKeyPressed(KeyEvent evt) {
switch(evt.getKeyCode()){
case 87: //Norte
pY=pY-movimiento;
labelPersonaje.setIcon(new ImageIcon(rutaBase+"Imagenes\\movement\\07-north.png"));
break;
case 83: //Sur
pY=pY+movimiento;
labelPersonaje.setIcon(new ImageIcon(rutaBase+"Imagenes\\movement\\03-sur.png"));
break;
case 68: //Este
pX=pX+movimiento;
labelPersonaje.setIcon(new ImageIcon(rutaBase+"Imagenes\\movement\\01-east.png"));
break;
case 65: //Oeste
pX=pX-movimiento;
labelPersonaje.setIcon(new ImageIcon(rutaBase+"Imagenes\\movement\\05-west.png"));
break;
default:
break;
}
labelPersonaje.setLocation(pX, pY);
//labelPj.setBounds(pX, pY, labelPj.getWidth(), labelPj.getHeight());
}
Символ движется правильно, но для изменения изображения JLabel это возвращается к заданной точке.
Спасибо.
Попробуйте выполнить runnable пример вашей проблемы – MadProgrammer
1) Для лучшей помощи в ближайшее время отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http: //www.sscce.org/) (Short, Self Contained, Correct Example). 2) Один из способов получить изображение (-ы) для примера - это горячая ссылка на изображения, видимые в [этом Q & A] (http://stackoverflow.com/q/19209650/418556). –
Было бы полезно увидеть код, относящийся к контейнеру ярлыка. –