我想通过简单地调用一个Action Listener来减少我拥有的按钮动作监听器的数量:
\t
我有许多不同的按钮,但是对于使用ActionListener的每个按钮,需要一个ActionListener(例如x)中的参数不同。有没有一种方法可以让动作监听器检测出正在使用哪个JButton?
答案 0 :(得分:1)
有很多方法可以实现目标。这是一个相当简单和直接的。
首先,使您的动作侦听器成为可以使用参数构建的命名类:
private class CalcListener implements ActionListener {
private int x;
private CalcListener(int x){
this.x = x;
}
@Override
public void actionPerformed(ActionEvent e) {
calc.calculate(x);
}
}
然后,像这样使用它:
button1.addActionListener(new CalcAction(1));
...
button8.addActionListener(new CalcAction(8));
button9.addActionListener(new CalcAction(9));