Не могу получить изображение для перемещения - PullRequest
0 голосов
/ 26 мая 2019

Я пытался заставить Jlabel с изображением двигаться с помощью клавиш со стрелками, но это не так.Я установил метку как иконку, добавил к ней список ключей, но даже в этом случае новое изображение не будет установлено, и метка не будет перемещаться.Что я делаю не так?

public class Main extends JPanel {
private Clip clip;
Character pro = new Protag();
private int protagX = pro.getX();
private int protagY = pro.getY();
JLabel protag; 
public static void main(String[] args) {
    JFrame mainFrame = new JFrame();
    Main main = new Main();
    mainFrame.add(main);


    mainFrame.setSize(1366,800);
    mainFrame.setLocation(90,10);
    mainFrame.setResizable(false);



    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainFrame.setVisible(true);
    main.requestFocusInWindow();

}
public Main() {
    playMusic("battle.wav");
    this.setLayout(null);
//      Keyboard keyListener = new Keyboard(this);
//      this.addKeyListener(keyListener);
    ImageIcon proImage = pro.getImageIcon();
    //ImageIcon enemyImage = new ImageIcon(("yosuke-stance.gif"));
    protag = new JLabel();
    //JLabel enemy = new JLabel();
    protag.setIcon(proImage);

    //enemy.setIcon(enemyImage);
    add(protag);
    //add(enemy);
    Dimension size = protag.getPreferredSize();
    System.out.print(protagX);
    protag.setBounds(protagX,protagY,size.width,size.height);
    protag.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e) {
            // TODO Auto-generated method stub
            int code = e.getKeyCode();
            if (code == KeyEvent.VK_LEFT) {
                System.out.println("test");
                ImageIcon proImage = pro.getImageIcon();
                pro.setImageIcon(new ImageIcon("yu-walkback.gif"));
                protag.setIcon(proImage);
                protag.setLocation(protag.getX()-5,protag.getY());
                repaint();
            }
            else if (code == KeyEvent.VK_RIGHT) {  
                System.out.println("test");
                ImageIcon proImage = pro.getImageIcon();
                pro.setImageIcon(new ImageIcon("yu-walkback.gif"));
                protag.setIcon(proImage);
                protag.setLocation(protag.getX()+5,protag.getY());
                repaint();
            }
            else if (code == KeyEvent.VK_DOWN) {
                System.out.println("test"); 
            }
            else if (code == KeyEvent.VK_Z) {
                System.out.println("test"); 
                ImageIcon proImage = pro.getImageIcon();
                pro.setImageIcon(new ImageIcon("yu-spinslash.gif"));
                protag.setIcon(proImage);
                repaint();
            }

        }
    });


}

Изображение просто не будет двигаться, когда я нажимаю клавиши со стрелками, и я не знаю, почему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...