java:Button不是抽象的,并且不会覆盖java.awt.event.ActionListener中的抽象方法actionPerformed(java.awt.event.ActionEvent)

java:Button不是抽象的,并且不会覆盖java.awt.event.ActionListener中的抽象方法actionPerformed(java.awt.event.ActionEvent),java,swing,jbutton,actionlistener,Java,Swing,Jbutton,Actionlistener,我是java新手,不知道如何解决这个问题 java: Button is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener 我在mant网站和youtube上搜索过,但仍然没有找到解决这个问题的正确方法 public class Button implements ActionListene

我是java新手,不知道如何解决这个问题

java: Button is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener
我在mant网站和youtube上搜索过,但仍然没有找到解决这个问题的正确方法

public class Button implements ActionListener {
    JTextField jt1, jt2, jt3;
    JButton b1, b2, b3, b4, b5;

    Button() {
        JFrame jf = new JFrame();
        JLabel jl1 = new JLabel("1st no:");
        jl1.setBounds(40, 40, 30, 30);

        JLabel jl2 = new JLabel("2nd no:");
        jl2.setBounds(40, 90, 30, 30);

        JLabel jl3 = new JLabel("Result:");
        jl3.setBounds(40, 150, 30, 30);

        jt1 = new JTextField();
        jt1.setBounds(90, 40, 100, 30);

        jt2 = new JTextField();
        jt2.setBounds(90, 90, 100, 30);

        jt3 = new JTextField();
        jt3.setBounds(90, 150, 100, 30);
        jt3.setEditable(false);

        b1 = new JButton("+");
        b1.setBounds(40, 200, 30, 30);
        b2 = new JButton("-");
        b2.setBounds(80, 200, 30, 30);
        b3 = new JButton("*");
        b3.setBounds(120, 200, 30, 30);
        b4 = new JButton("/");
        b4.setBounds(160, 200, 30, 30);
        b5 = new JButton("%");
        b5.setBounds(200, 200, 30, 30);
        jf.setLayout(null);
        jf.add(jl1);
        jf.add(jl2);
        jf.add(jt1);
        jf.add(jl3);
        jf.add(jt2);
        jf.add(jt3);
        jf.add(b1);
        jf.add(b2);
        jf.add(b3);
        jf.add(b5);
        jf.add(b4);
        jf.setSize(300, 400);
        jf.setVisible(true);

        b1.addActionListener(this);
        b2.addActionListener(this);
        b3.addActionListener(this);
        b4.addActionListener(this);
        b5.addActionListener(this);

    }

    public void ActionListener(ActionEvent e) {
        String a = jt1.getText();
        String b = jt2.getText();
        int n = Integer.parseInt(a);
        int m = Integer.parseInt(b);
        if (e.getSource() == b1) {
            int x = n + m;
            String r = String.valueOf(x);
            jt3.setText(r);
        } else if (e.getSource() == b2) {
            int x = n - m;
            String r = String.valueOf(x);
            jt3.setText(r);

        } else if (e.getSource() == b3) {
            int x = n / m;
            String r = String.valueOf(x);
            jt3.setText(r);

        } else if (e.getSource() == b4) {
            int x = n * m;
            String r = String.valueOf(x);
            jt3.setText(r);

        } else if (e.getSource() == b5) {
            int x = n % m;
            String r = String.valueOf(x);
            jt3.setText(r);

        }
    }

    public static void main(String[] args) {
        new Button();
    }
}

代码中有很多需要改进的地方,但是与错误有关的是什么呢
按钮不是抽象的,并且不会覆盖java.awt.event.ActionListener中的抽象方法actionPerformed(java.awt.event.ActionEvent),
这意味着您应该实现actionPerformed方法。因此,将
public void ActionListener(ActionEvent e)
更改为
public void actionPerformed(ActionEvent e)
,错误将消失:

public void actionPerformed(ActionEvent e) {
    String a = jt1.getText();
    String b = jt2.getText();
    ...

当您实现任何类的接口时,您需要重写类中所有非抽象的接口方法


当您的Button类实现ActionListener接口时,您需要重写类中的方法。

不要调用类Button。有一个AWT组件具有该名称,因此很容易混淆。不要使用null布局,也不要使用setBounds。Swing设计用于布局管理器。