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;
}
}