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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д