2013-07-13 65 views
1
b1.addActionListener(this); 

處理這種說法有什麼用「this」關鍵字,什麼參考將通過「this」關鍵字傳遞的?如果可能,請讓我知道例子。使用`this`關鍵字的同時實施事件在Java中

+2

http://stackoverflow.com/questions/3124126/java-addactionlistenerthis 可能重複的問題 – leigero

+0

@leigero看準你的問題,不要在發佈帖子時使用聊天快捷方式,下次使用詞彙。 –

+0

sure.i將不會使用 – ShyamD

回答

2

「這」是指該對象,如果你寫這個說法就意味着你的類實現的ActionListener

例如:

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.*; 

class test extends JFrame implements ActionListener { 
    JButton someButton; 


    test() { 
     // create the button 
     someButton = new JButton(); 
     // add it to the frame 
     this.add(someButton); 
     // adding this class as a listener to the button, if button is pressed 
     // actionPerformed function of this class will be called and an event 
     // will be sent to it 
     someButton.addActionListener(this); 
    } 
    public static void main(String args[]) { 
     test c = new test(); 
     c.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     c.setSize(300, 300); 
     c.setVisible(true); 
     c.setResizable(false); 
     c.setLocationRelativeTo(null); 
    } 

    public void actionPerformed(ActionEvent e) { 

     if(e.getSource() == someButton) 
     { 
      JOptionPane.showMessageDialog(null, "you pressed somebutton"); 
     } 
    } 
}; 
+1

'this'表示這個* object。* – EJP

+1

謝謝你Sara Tarek – ShyamD

+0

@EJP是的,你是對的! –

2

this referes到對象的當前實例。

說你的班級A實施ActionListener。那麼從你的類中如果你添加了監聽器,那麼你可以使用這個,至於繼承規則你的類也是一個監聽器。

class A implements ActionListener{ 
    Button b; 
    A(){ 
     b1 = new Button(); 
     b1.addActionListener(this); 
    } 
} 

,這是這裏使用,因爲currentobject也是動作監聽

+0

謝謝你StinePike,你的回答真的幫了我 – ShyamD

+0

@ user2578593歡迎大家如果你認爲答案有幫助請upvote接受答案 – stinepike

+0

當然,我會一旦獲得足夠的聲望 – ShyamD