2013-08-15 5 views
0

Я думал, что у меня приличное хватание на ключевое слово this. Что-то меня немного смутило.Что это за ключевое слово?

У меня есть метод, который добавляет ActionListener к моей кнопке. Это то, что метод выглядит

public void checkButtonState(){ 

     button1.addActionListener(new ActionListener(){ 



      @Override 
      public void actionPerformed(ActionEvent arg0) { 

      } 

     }); 


    } 

У меня также есть метод конструктора в моем классе .. который выглядит как этот

public CanvasA(){ 
     try{ 
      CanvasABackground = ImageIO.read(new File("C:\\Users\\user\\workspace\\Interface\\src\\01120156745.jpg")); 

     }catch(IOException ex){ 

     } 


     setSize(450,490); 
     setLayout(null); 
     JLabel picLabel = new JLabel(new ImageIcon(CanvasABackground)); 
     add(picLabel); 
     createEnterButton(); 
     createCloseButton(); 
     checkButtonState(); 
     checkButtonState2(); 
    } 

При использовании this ключевого слова в конструкторе, я получаю много различных методов это всплывающее окно. Например, ввод this. будет генерировать множество методов, которые называются только add и многие другие. Однако, набрав this. внутри метода

@Override 
      public void actionPerformed(ActionEvent arg0) { 

      } 

, genereates совершенно разные методы .. в основном this ключевое слово имеет в виду что-то другое. В первом случае речь идет о моем классе CanvasA (который расширяет JPANEL). Им любопытно, что this ссылается при нахождении внутри метода actionPerformed.

Благодарим за помощь.

ответ

4

Где

new ActionListener(){ 



      @Override 
      public void actionPerformed(ActionEvent arg0) { 
        //here this referes to ActionListener 
      } 

     }); 

является новым Annaymous внутреннего класса, внутри что this referes к текущему экземпляру ActionListener

+0

спасибо. Оба ответа велики. Может принимать только один^_^ –

+0

@ElmedinZelenkic Нет проблем, часто бывает: P Рад помочь вам. –

+0

@ElmedinZelenkic Принимает это, поскольку он упоминает «анонимный внутренний класс», который прямо к делу. :) –

4

этот здесь ссылается на ваш экземпляр прослушивателя действий.

+0

Спасибо. То, что я подозревал, но не хотел ничего принимать. Теперь я знаю. Примите ответ за 10 минут. –

+0

@ElmedinZelenkic Без проблем .. –