Нужно ли расширять класс адаптера здесь? - PullRequest
1 голос
/ 17 апреля 2011

Это мой фрагмент:

tf.addKeyListener(new KeyListener() {
     public void keyTyped(KeyEvent ke) {
            getEnter(ke);
     }
  });

В KeyListener interface есть 3 метода. Но я хочу использовать только один метод, т.е. keyTyped() Как я могу это сделать? (Нужно ли расширять AdapterClass? Если да, то как?)

1 Ответ

2 голосов
/ 17 апреля 2011

Да, вам нужно расширить класс KeyAdapter.Он предоставляет (пустые) реализации всех методов KeyListener.Вы должны переопределить тот, который вам нужен, и пустые реализации будут удовлетворять контракту интерфейса.Вы бы расширили его так же, как в своем коде:

tf.addKeyListener(new KeyAdapter() {
     public void keyTyped(KeyEvent ke) {
             getEnter(ke);
     }
  });

Как говорит сам Javadoc для KeyAdapter:

Расширьте этот класс, чтобы создать прослушиватель KeyEvent и переопределитьметоды для интересных событий.(Если вы реализуете интерфейс KeyListener, вы должны определить все методы в нем. Этот абстрактный класс определяет нулевые методы для всех них, поэтому вам нужно только определять методы для событий, которые вас интересуют.)

...