将参数传递给ActionListener

-2 java swing actionlistener

public class start implements ActionListener {

    public void actionPerformed(ActionEvent aL) {
      method(arguments);

    }
  }

method(arguments) {
   //stuff
}
Run Code Online (Sandbox Code Playgroud)

我希望JButton告诉程序使用参数"stuff"启动一个方法所以我把actionListener放在按钮上面,但是actionListener没有访问参数,我不知道如何给它们(我看了oracle文档,无法弄清楚).我试过这个:

actionPerformed(ActionEvent aL, stuff) {
Run Code Online (Sandbox Code Playgroud)

这不起作用,我得到错误

Compute.java:45: error: Compute.start is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener
  public class start implements ActionListener {
         ^
Run Code Online (Sandbox Code Playgroud)

我尝试放置一个@Override但你不能根据编译器覆盖它.那么,我如何将参数提供给ActionListener或者让方法在按钮之外但只在按下按钮时才开始工作,但是我在JFrame中使用JProgressBar按钮所在的按钮是使用方法作为计时器的东西所以最好将参数传递给actionListener

rdo*_*nuk 7

您可以通过构造函数传递参数.但是,当然这意味着只有在创建时才能传递参数ActionListener.

public class Start implements ActionListener {

    SomeType arguments;
    public Start (SomeType arguments) {
         this.arguments = arguments;
    }

    public void actionPerformed(ActionEvent aL) {
        method(arguments);    
    }
}
Run Code Online (Sandbox Code Playgroud)