2017-07-07 53 views
1
public void Message() { 
@Override 
public void actionPerformed(ActionEvent e) { 
    JOptionPane.showMessageDialog(null, "Hello it is working"); 
} 

} 

// Message()是类中的方法。我可以在主方法或任何方法中添加一个ActionListener()吗?

+4

你不能声明里面的Java方法方法,让你上面贴的代码是无效的。 – Jesper

+0

为了让你的例子工作,你需要'实现ActionListener',否则你会得到一个编译器错误 – MadProgrammer

+1

请解释你想要做什么,以及为什么你想要放* * ActionListener *里面*任何方法*。 –

回答

0

所有方法都必须在一个类中分别声明。简而言之,方法是某个类的对象可以做的事情,而在另一种方法中定义它们是没有意义的。所以在你的情况下,

public void Message(){ 

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

编辑:这篇文章值得一读。我没有关于lambda表达式的知识,但它可能是你正在寻找的东西:) Does Java support inner/local/sub methods?

0

在Java中,嵌套方法是不允许的!

为了overrideactionPerformed方法,你需要implementActionListener接口。

0

不可以。我们不能在java中创建嵌套方法。 尝试阅读关于actionlisteners。 :)

0

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

你可以得到最接近的事是:

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

也就是说,在一个方法定义的内部类中定义的第二种方法。

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

相关问题