当前位置: 首页 > 面试题库 >

addActionListener做什么?

屠嘉勋
2023-03-14
问题内容

我有以下代码:

JButton button = new JButton("Clear");
button.addActionListener(this);

据我了解,我创建了一个按钮,上面写着“清除”。然后,我必须将一个动作与此按钮关联(如果按下该按钮会发生什么),并由完成addActionListener。这样对吗?

但是我不知道该在哪里指定动作。按下按钮应该清除文本区域,据我所知,应该在某处有代码清除文本区域。但是在给定的示例中,
addActionListener() 。的参数中只有“ this” 。

程序如何知道按下按钮时应清除文本区域?

如果需要,请在此处给出完整的代码。


问题答案:

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);
    }
  }
}


 类似资料:
  • 问题内容: 定义简单单击JButton的行为时,哪种方法正确?而且,有什么区别? 要么 问题答案: 是Swing中的低级事件侦听器(顺便说一下,也是AWT)。 是更高级别的,应该使用。 比起更好的选择,应该使用(实际上是)。 使用允许在多个小部件(例如,…)之间共享它;您不仅可以共享按下按钮/菜单时触发的代码,还可以共享状态,尤其是可以共享操作(及其关联的小部件)是否处于启用状态。

  • 问题内容: 我正在阅读一本有关html开发的书(我还比较陌生),尽管该书一个月前(2011年11月)才刚刚出版,但作者是一位经验丰富的编码人员,也许可以用于行动形式是老派? 因为我试图获得示例代码的要点,但是尽管进行了搜索,却找不到解释。 在Google,SO和www.w3schools.com上。 有人知道该动作对表格意味着什么吗? 问题答案: 动作通常指定提交表单的文件/页面(使用方法参数中所

  • 问题内容: 为什么我们需要特定于数据库的功能,例如mysql_real_escape_string()?addlashes()不能做什么? 暂时忽略了参数化查询的高级替代方案,是一个仅使用addlashes()的web应用仍然容易受到SQL注入的攻击,如果是,怎么办? 问题答案: 当处理多字节编码的字符串时,加号通常不够好。

  • 问题内容: 显示在Netty 4升级文档中。您能解释一下它的作用吗? 谢谢! 问题答案: 这是一个通过套接字的选项,用于确定排队的连接数。 http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html 传入连接指示(连接请求)的最大队列长度设置为backlog参数。如果在队列已满时出现连接指示,则拒绝连接。 有关网络渠道的更

  • 问题内容: JavaDoc说: 我知道C#中有什么,但是这个标量和C#标量似乎绝对不同。 问题答案: 这是在声明您希望查询结果返回单个命名列的对象,而不是实体。例如 将返回一个。如果您指定多个标量,则结果将以的数组形式返回。与之类似,除了它适用于命名列,并且可以返回复合结果。

  • 问题内容: Hibernate.initialize做什么? 通常提到的文档只谈论 有什么意义吗 问题答案: 如果实体具有延迟初始化的字段(例如,一些较大的BLOB或CLOB数据或延迟的一对一关联),我会说是。见20.1.8。在前者的文档中,在20.1.3中。 也可以看看: 20.1.4。初始化集合和代理