Nei*_*eiL 5 java events event-handling
我是来自 javascript 背景的 Java 新手。
在 javascript 中,我们可以将回调保存在像这样的对象中 -
//we register some callback on a keyword
var observerCallbacks = {};
registerObserverCallback = function(eventname ,callback){
observerCallbacks[eventname] = callback;
};
//For calling events
notifyObservers = function(eventname){
observerCallbacks[eventname]();
};
Run Code Online (Sandbox Code Playgroud)
用法 :
//Register event
registerObserverCallback('eventA',function(){
//body of callback
});
//For calling event
notifyObservers('eventA');
Run Code Online (Sandbox Code Playgroud)
我正在寻找 Java 中的同等功能。有没有办法创建这种类型的自定义功能。
Java 为此目的有一个稍微不同的机制。对象将自身注册为特定类型事件的侦听器。当此类事件发生时,所有侦听器都会收到通知。
在这里您可以找到有关它的教程。下面的代码来自那里。
public class MultiListener ... implements ActionListener {
...
//where initialization occurs:
button1.addActionListener(this);
button2.addActionListener(this);
button2.addActionListener(new Eavesdropper(bottomTextArea));
}
public void actionPerformed(ActionEvent e) {
topTextArea.append(e.getActionCommand() + newline);
}
}
class Eavesdropper implements ActionListener {
...
public void actionPerformed(ActionEvent e) {
myTextArea.append(e.getActionCommand() + newline);
}
}
Run Code Online (Sandbox Code Playgroud)