KeyListener в Java абстрактен; не может быть создан?

Я пытаюсь создать прослушиватель ключей в java, однако, когда я пытаюсь

KeyListener listener = new KeyListener();

Netbeans сообщает мне, что KeyListener является абстрактным и не может быть создан. Я знаю, что мне не хватает какой-то другой части этого ключевого слушателя, но поскольку я впервые использую ключевой слушатель, я не уверен, что еще мне нужно. Почему он мне это говорит?

Спасибо,

Томек

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
0
13 322
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

KeyListener - это интерфейс - он должен быть чем-то реализован. Итак, вы могли:

KeyListener listener = new SomeKeyListenerImplementation();

но вы не можете создать его напрямую. Вы мог используете анонимный внутренний класс:

KeyListener listener = new KeyListener()
{
    public void keyPressed(KeyEvent e) { /* ... */ }

    public void keyReleased(KeyEvent e) { /* ... */ }

    public void keyTyped(KeyEvent e) { /* ... */ }
};

В основном это зависит от того, чем вы хотите заниматься.

KeyListener - это интерфейс, что означает, что вы можете написать на его основе класс и реализовать его функции. Возможно, этот руководство поможет.

KeyListener - это интерфейс, см. java.sun.com/j2se/1.5.0/docs/api/java/awt/event/…

Daniel Hiller 13.11.2008 16:24

Извините за это, я не так хорошо знаком с Java и ее терминологией, спасибо за разъяснения.

schnaader 14.11.2008 15:10

KeyListener - это интерфейс, поэтому вы должны написать класс, реализующий его, чтобы использовать его. Как предложил Джон, вы могли бы создать анонимный класс, реализующий его встраиваемый, но есть класс KeyAdapter, который является абстрактным классом, реализующим KeyListener, с пустыми методами для каждого метода интерфейса. Если вы создаете подкласс KeyAdapter, вам нужно переопределить только те методы, которые вам нужны, а не каждый метод. Таким образом, если бы вы заботились только о нажатой клавише, вы могли бы сделать это

KeyListener listener = new KeyAdapter()
{
    public void keyPressed(KeyEvent e) { /* ... */ }
};

Это может сэкономить вам немного работы.

Круто, я не знал этого класса. Это избавит меня от синтаксического беспорядка (пустые методы).

Wouter Lievens 04.11.2010 11:06

Другие вопросы по теме