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




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 - это интерфейс, что означает, что вы можете написать на его основе класс и реализовать его функции. Возможно, этот руководство поможет.
Извините за это, я не так хорошо знаком с Java и ее терминологией, спасибо за разъяснения.
KeyListener - это интерфейс, поэтому вы должны написать класс, реализующий его, чтобы использовать его. Как предложил Джон, вы могли бы создать анонимный класс, реализующий его встраиваемый, но есть класс KeyAdapter, который является абстрактным классом, реализующим KeyListener, с пустыми методами для каждого метода интерфейса. Если вы создаете подкласс KeyAdapter, вам нужно переопределить только те методы, которые вам нужны, а не каждый метод. Таким образом, если бы вы заботились только о нажатой клавише, вы могли бы сделать это
KeyListener listener = new KeyAdapter()
{
public void keyPressed(KeyEvent e) { /* ... */ }
};
Это может сэкономить вам немного работы.
Круто, я не знал этого класса. Это избавит меня от синтаксического беспорядка (пустые методы).
KeyListener - это интерфейс, см. java.sun.com/j2se/1.5.0/docs/api/java/awt/event/…