Лучше всего передать игрока в конструктор вашего ключевого слушателя, но если его значение может измениться, добавьте его контейнер.Некоторые примеры:
public class A extends JFrame{
final Player currentPlayer;
public A(){
currentPlayer = new Player();
add(new JLabel("press to increase player score");
addKeyListener(new MyKeyListener(currentPlayer));
a.pack();
a.setVisible(true);
}
private static final class MyKeyListener extends KeyAdapter{
Player player;
public MyKeyListener(Player player){
super();
this.player = player;
}
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
//doing some stuff with code
if(code == KeyEvent.VK_SHIFT)
player.manipulateItem(/*few lists to pass here*/);
e.consume();
}
}
}
Если ваш игрок не является финальным и может измениться, передайте экземпляр A и используйте получатель.не забывайте использовать ваше ключевое событие, если ваш слушатель - единственная цель.PS: извините, импорт отсутствует, у меня нет своей IDE под рукой, прыгающей без ошибок