public class start implements ActionListener {
public void actionPerformed(ActionEvent aL) {
method(arguments);
}
}
method(arguments) {
//stuff
}
我希望JButton告诉程序使用参数" stuff"来启动一个方法。所以我把actionListener放在按钮上面,但是actionListener没有访问参数,我也不知道如何给它们(我查看了oracle文档并且无法弄明白)。我试过这个:
actionPerformed(ActionEvent aL, stuff) {
并且这不起作用,我收到错误
Compute.java:45: error: Compute.start is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener
public class start implements ActionListener {
^
我尝试使用@Override,但根据编译器你无法覆盖它。那么,我如何将参数提供给ActionListener或者让方法在按钮之外但只在按下按钮后才开始工作,但是我在JFrame中使用了一个JProgressBar,其中按钮使用的方法是&#39 ; s定时器的东西,所以最好将参数传递给actionListener
答案 0 :(得分:7)
您可以通过构造函数传递参数。但是,当然这意味着只有在创建ActionListener
时才能传递参数。
public class Start implements ActionListener {
SomeType arguments;
public Start (SomeType arguments) {
this.arguments = arguments;
}
public void actionPerformed(ActionEvent aL) {
method(arguments);
}
}