Java ".addActionListener (this)" - PullRequest
6 голосов
/ 25 июня 2010

Если я добавляю прослушиватель действий, я всегда использую «это» в скобках.Но что означает это «это»?

Ответы [ 3 ]

6 голосов
/ 25 июня 2010

Метод addActionListener принимает текущий объект класса в качестве параметра.Ключевое слово «this» просто означает «этот объект, в котором я сейчас работаю».Если вы используете netbeans, вы можете ввести «this» и поставить точку после него, чтобы увидеть все методы, определенные в классе «this».В нем должны быть перечислены все методы, которые определены в вашем классе, включая любые унаследованные методы.

Чтобы полностью понять, что означает «это», вы должны сначала понять связь между классами и объектами.* Если вы хотите быть техническим в этом, «this» является ссылкой на текущий объект.

3 голосов
/ 26 июня 2010

«this» обозначает текущий экземпляр класса, в котором вы находитесь.

Это будет работать до тех пор, пока класс реализует интерфейс ActionListener.

Вы можете использовать совершенно другой объект, есливам нравится, например, создание анонимного внутреннего класса, который реализует интерфейс ActionListener:

    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println("Hello!!!");
        }
    });

Это полезно, если вы хотите иметь несколько разных слушателей действий, но не хотите создавать отдельные классы для каждого.

0 голосов
/ 26 июня 2010

Если вы посмотрите учебник , то увидите ...

Чтобы написать прослушиватель действий, выполните следующие действия:
Объявите класс обработчика событий и укажитечто класс либо реализует интерфейс ActionListener, либо расширяет класс, реализующий интерфейс ActionListener.
Например:

public class MyClass implements ActionListener {

Зарегистрировать экземпляр класса обработчика событий в качестве прослушивателя на одном или нескольких компонентах.
Например:

someComponent.addActionListener(instanceOfMyClass);

Включить код, который реализует методы в интерфейсе слушателя.
Например:

  public void actionPerformed(ActionEvent e) { 
      ...//code that reacts to the action... 
  }

Это представляет реализованный и созданный экземпляр ActionListener, которыйслучается, ваш класс.Вы можете легко передать любой класс, который реализует интерфейс ActionListener.

Таким образом, при нажатии кнопки ваш метод actionPerformed будет вызываться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...