我有以下代码:
JButton button = new JButton("Clear");
button.addActionListener(this);
Run Code Online (Sandbox Code Playgroud)
据我所知,我创建了一个按钮,上面写着"清除".然后我必须将一个动作与这个按钮相关联(如果按下该按钮会发生什么)并完成addActionListener.这样对吗?
但我不明白的是指定了行动的地方.按下按钮应该清除文本区域,据我所知,应该有一个代码清除文本区域.但是在给定的例子中,在论证中只有"this" addActionListener().
程序如何知道按下按钮时应该清除文本区域?
如果需要,则在此处给出完整代码.
McD*_*ell 17
An ActionListener是一种回调机制.每当添加一个控件来触发一个控件时ActionEvent,public void actionPerformed(ActionEvent e)都会调用该方法.
我不明白的是调用actionPerformed的地方.我看到它是在类中定义的,但是没有调用此方法的地方.
这由UI组件的内部机制调用.从概念上讲,您可以将代码看起来像这样:
public class Button {
private final List<ActionListener> listeners = new ArrayList<ActionListener>();
public void addActionListener(ActionListener l) {
listeners.add(l);
}
public void click() {
ActionEvent event = new ActionEvent(this, 0, "click");
for (ActionListener l : listeners) {
l.actionPerformed(event);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44448 次 |
| 最近记录: |