【问题标题】:What does ActionEvent e mean?ActionEvent e 是什么意思?
【发布时间】:2015-09-21 20:11:08
【问题描述】:

我正在学习 Java,我真的很想更深入地了解 ActionEvent e 参数的含义和代表。当我编码时,我不只是想吐出有效的行,但我不明白。我想在使用它们之前对概念有一个全面的了解。

那么它具体要求什么,这两个部分(ActionEvent 和 e)是什么意思?

class ButtonListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e){
    }
}

谢谢。

【问题讨论】:

  • e 是一种ActionEvent,它允许您访问ActionEvent 的属性。 actionPerformed 方法在关联对象生成动作时调用,ActionEvent 携带属性 if 帮助您确定应该做什么
  • 简而言之..ActionEvent 是类或事件,当事件被触发时会获得完整的引用。这样您就可以获取有关触发事件的完整信息并使用它的功能、属性和所有其他信息。

标签: java awt actionlistener actionevent


【解决方案1】:

ActionEvent 是一个类,e 是该类的一个实例。您可以使用 e 来调用它的方法/属性,在此处找到

http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionEvent.html

ActionEvent 只是一个类型,它告诉你e 是什么类型的对象。顺便说一句,您可以将e 更改为您喜欢的任何内容,例如。 eventobject

ActionEvent eventActionEvent object(记住,不要与Object混淆,它的对象是小写的“o”)、ActionEvent anyVariableName等等...

然后在actionPerformed() 中你可以调用event.doSomething(); 之类的东西

【讨论】:

  • 所以我可以将“e”更改为我想要的任何名称?
  • 是的,它只是一个参考名称,一个变量。它正在实例化 ActionEvent 类,因此您无法更改 ActionEvent。 "e" 只在 actionPerformed() 中有意义。
  • 这是开始学习 Java 的一个相当高级的主题。如果不首先了解面向对象编程的基础知识,我不会直接跳入学习事件驱动编程,我会专注于主要方法中更简单的示例,以了解什么是面向对象程序,为什么使用它。之后尝试学习观察者设计模式,那么您将更好地理解事件驱动编程。
【解决方案2】:

ActionEvent 是您的侦听器捕获的“事件”,由调度程序发送。这意味着,用外行的话来说,某个地方的某个线程已经确定您的操作(即单击按钮等)已导致操作发生,并通知系统。您的听众会注意到这一点,并将引用作为参数eThis 可能有助于更清楚地了解行动是什么/为什么;并且,查看事件调度线程 (EDT) 可能会有所帮助。

【讨论】:

    【解决方案3】:

    这应该可以帮助您: http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

    基本上,ButtonListener 是您的 ActionListener 实现。 你会像使用它一样

    someButton1.addActionListener(new ButtonListener());
    someButton2.addActionListener(new ButtonListener());
    

    它将侦听按钮“someButton1”和“someButton2”上的任何操作事件。但我们可能希望以不同的方式处理两个按钮上的点击。这时候 ActionEvent 就派上用场了。

    内部方法,我们可以通过以下方式做到这一点

    @Override
    public void actionPerformed(ActionEvent e){
        if(e.getActionCommand().equals("Button 1")){
            //Process Button 1 action event here 
        }
        else if(e.getActionCommand().equals("Button 2")){
            //Process Button 2 action event here 
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-03
      • 2010-11-06
      • 2015-08-04
      • 2012-05-30
      • 2017-08-28
      • 2019-05-07
      • 1970-01-01
      • 2021-02-16
      相关资源
      最近更新 更多