addKeyListener () не определен для типа

1

Я написал этот короткий класс, который должен добавить объект класса "Player", который содержит реализованный KeyListener, но кажется, что что-то отсутствует для addKeyListener(); метод.

import java.awt.*;

import javax.swing.*;

public class Titlescreen {

    private Player player;

    public void init()
    {
        player = new Player();
        this.addKeyListener(player);
    }


    public void tick()
    {
        player.tick();
    }

    public void paint()
    {

    }

}
Теги:
keylistener

1 ответ

2

Ваш Titlescreen не имеет addKeyListener(...) и не расширяет класс, который имеет этот метод, поэтому компилятор справедливо жалуется, что вы вызываете метод, который не существует для этого класса.

У вас есть несколько вариантов:

  • Дайте Titlescreen метод addKeyListener(...), но тогда вам нужно будет выяснить, что должно иметь тело метода, т.е. Что вы будете добавлять KeyListener внутри тела метода.
  • На экране Titles Screen расширяется компонент Swing, такой как JPanel, который имеет свой собственный addKeyListener(...). Я предполагаю, что это то, что вы хотели сделать, но забыл сделать это, но я не уверен, учитывая информацию, которую вы опубликовали до сих пор. Обратите внимание: если вы это сделаете, вам нужно будет убедиться, что прослушанный компонент 1) настраивается и 2) имеет фокус приложения, когда вы хотите, чтобы KeyListener функционировал.
  • Просто избавитесь от this.addKeyListener(...) метода this.addKeyListener(...). Самое главное - причина, по которой вы даже делаете этот звонок, и, возможно, что-то лучше.
  • 0
    Еще один мой метод, который я написал во время просмотра учебника, поэтому я не знаю, какой класс мне следует расширить или реализовать.
  • 0
    Нужно ли реализовывать «Runnable»?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню