JAVA 每个按钮的 ActionListener

JAVA ActionListener for every button

我正在尝试在 java GUI 中制作简单的计算器。我到了可以清楚地看到代码很丑的地步,因为重复的函数如下:

number0 = new JButton("0");
    number0.setBounds(130, 280, 50, 50);
    add(number0);

number0.addActionListener(new GetNumber0());

public class GetNumber0 implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String text =number0.getText();
            int num = Integer.parseInt(text);
            result=(result*10)+num; // +num if else than 0
            lResult.setText("Result: "+result);
        }
    }

我正在为每个按钮做这件事,有没有办法让这段代码看起来更好?我希望有一种东西可以从每个按钮单独获取一个变量,并只在一个名为 GetNumber() 的函数中使用它。

您不需要创建单独的侦听器,您确实不应该这样做。写 String text = number0.getText(); 没有用,因为你已经知道它会是 0.

在按钮之间共享ActionListener

public class ButtonListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        JButton btn = (JButton) e.getSource();
        int num = Integer.parseInt(btn.getText());
        result=(result*10)+num;
        lResult.setText("Result: "+result);
    }
}