簡體   English   中英

這種方法有什么用?

[英]How does this method work?

我經常遇到這種注冊動作監聽器的方式。

雖然我最近一直在使用這種方法,但我不明白這是怎么回事

這是一個:{

submit=new JButton("submit");
submit.addActionListener(new ActionListener(){       // line 1

  public void actionPerformed(ActionEvent ae) {
    submitActionPerformed(ae);
  }
}); //action listener added

調用的方法:

public void submitActionPerformed(ActionEvent ae) {

    // body

}

在這個方法中,我不需要實現ActionListener。 為什么?

另外,請解釋標記為line 1的代碼。

請清楚解釋2個片段。

您在技術上確實實現了ActionListener。 當你調用addActionListener

submit.addActionListener(
 new ActionListener(){
  public void actionPerformed(ActionEvent ae) {
   submitActionPerformed(ae); 
   } 
  });

您創建了一個匿名類的實例,或一個實現沒有名稱的ActionListener的類。

換句話說,上面的代碼段基本上就像我們用本地內部類做的那樣

class MyActionListener implements ActionListener
{
 public void actionPerformed(ActionEvent ae)
 {
  submitActionPerformed(ae);
 }
}

submit.addActionListener(new MyActionListener());

對於您的示例,匿名類只調用您的一個成員方法submitActionPerformed 這樣,您的方法可以具有比actionPerformed更具描述性的名稱,並且除了ActionListener之外,它還使其可以在類中的其他位置使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM