【问题标题】:Can i add an ActionListener() inside a main method or any method?我可以在主方法或任何方法中添加 ActionListener() 吗?
【发布时间】:2017-07-07 11:09:44
【问题描述】:
public void Message() {
@Override
public void actionPerformed(ActionEvent e) {
    JOptionPane.showMessageDialog(null, "Hello it is working");
}

}

//Message() 是类中的方法。

【问题讨论】:

  • 不能在Java方法中声明方法,所以上面贴的代码是无效的。
  • 为了让您的示例正常工作,您需要implement ActionListener,否则您将收到编译器错误
  • 请说明您想做什么,以及为什么要将 ActionListener 放入 any 方法
  • @Jesper an ActionListener 不是方法。
  • 也许你正在考虑一个匿名类,像这样:comp.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt){...}});?

标签: java actionlistener


【解决方案1】:

所有方法都必须在一个类中单独声明。简单来说,方法是某个类的对象可以做的事情,在另一个方法中定义它们是没有意义的。所以在你的情况下,

public void Message (){

}
@Override
public void actionPerformed(ActionEvent e){
    JOptionPane.showMessageDialog(null, "Hello it is working");
}

编辑:这篇文章值得一读。我对 lambda 表达式一无所知,但它可能就是你要找的:) Does Java support inner / local / sub methods?

【讨论】:

    【解决方案2】:

    没有。我们不能在 java 中创建嵌套方法。 尝试阅读有关 actionlisteners 的信息。 :)

    【讨论】:

      【解决方案3】:

      由于 Java 8 方法可以使用 lambda 进行嵌套。 java中的方法可以嵌套[...]吗? 不,这是不可能的。

      你能得到的最接近的是:

      class Name {
          void methodOne() {
              class InnerClass {
                 void methodTwo() {
                 }
               }
           }
       }
      

      即在方法中定义的内部类中定义的第二个方法。

      你可以在内部类中声明静态方法,所以你不必调用new

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-29
        • 1970-01-01
        • 1970-01-01
        • 2010-09-10
        相关资源
        最近更新 更多