KeyListener - Java (240783)

Узнай цену своей работы

Формулировка задачи:

Изучал я яву, читал темы на хабре, все шло хорошо до момента с KeyListener, в моменте считывания нажатой клавиши, говорит мол не знает класса keyPressed, библиотеки вроде все есть, в яве новый, прошу не бить сильно, до явы учил только C++
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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.JPanel;
import javax.swing.Timer;
 
public class Main extends JPanel implements ActionListener {
 
    Image img = new ImageIcon("2.png").getImage();
 
    Timer timer = new Timer(20, this);
 
    JFrame frame;
 
    public Main(JFrame frame) {
        this.frame = frame;
        frame.addKeyListener(new KeyAdapter() {
 
            @Override
            public void keyPressed(KeyEvent e) {
                // TODO Auto-generated method stub
                player.keyPressed(e);
            }
 
            @Override
            public void keyReleased(KeyEvent e) {
                // TODO Auto-generated method stub
                player.keyReleased(e);
            }
 
        });
    }
 
    public void paint(Graphics g) {
        g.drawImage(img, player.getMapX(), player.getMapY(), frame.getWidth(), frame.getHeight(), null);
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        repaint();
        player.move();
    }
    Player player = new Player();
 
}

Решение задачи: «KeyListener»

textual
Листинг программы
package kurshach;
import java.awt.event.KeyEvent;
public class Player {
 
    private int x = 0;
    private int y = 0;
    private int speed = 2;
    public int mapX = 0;
    public int mapY = 0;
 
    public void keyReleased(KeyEvent e) {
        System.out.println(e.getKeyCode());
    }
 
    public int getX() {
        return x;
    }
 
    public int getY() {
        return y;
    }
 
    public int getSpeed() {
        return speed;
    }
 
    public void move() {
        x -= speed;
        mapX += speed;
    }
 
    public int getMapX() {
        return mapX;
    }
 
    public int getMapY() {
        return mapY;
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5