gpt4 book ai didi

java - 如何为需要不同方法参数的按钮使用一个 Action 监听器?

转载 作者:行者123 更新时间:2023-12-02 12:00:52 25 4
gpt4 key购买 nike

我想通过简单地调用一个操作监听器来减少按钮操作监听器的数量:

ActionListener calculatorListener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
int x = 9;
calc.calculate(x);
}
};

JButton button9 = new JButton("9");
buttonPanel.add(button9);

button9.addActionListener(calculatorListener);

JButton button8 = new JButton("8");

buttonPanel.add(button8);

button8.addActionListener(calculatorListener); //etc.....

我有许多不同的按钮,但需要一个 ActionListener 中的参数(例如 x)对于使用 ActionListener 的每个按钮都不同。有没有一种方法可以让 Action 监听器检测到正在使用哪个 JButton?

最佳答案

实现目标的方法有很多。这是一个相当简单明了的方法。

首先,使您的操作监听器成为一个可以使用参数构造的命名类:

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));

关于java - 如何为需要不同方法参数的按钮使用一个 Action 监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com