Java ActionListener实现

Java ActionListener实现,java,swing,netbeans,interface,Java,Swing,Netbeans,Interface,Netbeans将ActionListener视为用户定义的界面,并显示错误 方法不会重写或实现超类型中的方法 还有一件奇怪的事情,如果我删除了一行:import java.awt.event.*,它不会给出一个错误,这没有任何意义 package mycalculator; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyCalculator extends JFrame im

Netbeans将
ActionListener
视为用户定义的界面,并显示错误

方法不会重写或实现超类型中的方法

还有一件奇怪的事情,如果我删除了一行:
import java.awt.event.*
,它不会给出一个错误,这没有任何意义

package mycalculator;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MyCalculator extends JFrame implements ActionListener {
    private JButton Cbtn;
    private JButton eqbtn;
    private JButton opbtn[] = new JButton[4];
    private JButton digbtn[] = new JButton[10];
    private JLabel disp;

    public MyCalculator() {
        Container c = this.getContentPane();
        c.setLayout(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(212,290);
        this.setResizable(false);

        disp = new JLabel("0");

        disp.setBounds(5,10,190,30);
        c.add(disp);

        Cbtn =  new JButton("C");
        Cbtn.setBounds(105, 200,45,45);
        c.add(Cbtn);

        eqbtn = new JButton("=");
        eqbtn.setBounds(5,200,45,45);
        c.add(eqbtn);

        for (int i = 0; i < digbtn.length; i++) {
            digbtn[i] = new JButton(i+"");
            if (i == 0) {
                digbtn[i].setBounds(55,200,45,45);   
            } else {
                digbtn[i].setBounds(5+((i-1)%3)*50,50+((i-1)/3)*50,45,45);
            }
            c.add(digbtn[i]);
            //digbtn[i].addActionListener(this);
        }

        String str [] = {"+", "-", "*", "/"};

        for (int i = 0; i < opbtn.length; i++) {
            opbtn[i] = new JButton(str[i]);
            opbtn[i].setBounds(155,50+50*i, 45,45);

            c.add(opbtn[i]);
            //opbtn[i].addActionListener(this);
        }

         disp.setBorder(BorderFactory.createLineBorder(Color.black));
         disp.setHorizontalAlignment(SwingConstants.RIGHT);

    }

   //here  
   @Override
   public void actionPerformed(ActionEvent e) {
        JButton pressed = (JButton)e.getSource();

        if (disp.getText().equals("0")) {
            disp.setText(pressed.getText());
        } else {
            disp.setText(disp.getText().concat(pressed.getText()));
        }
    }   

    public static void main(String[] args) {
         MyCalculator frmCalc1 = new MyCalculator();
         frmCalc1.setVisible(true);
    }
}
package-mycalculator;
导入java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类MyCalculator扩展JFrame实现ActionListener{
私人JButton-Cbtn;
专用按钮eqbtn;
私有JButton opbtn[]=新JButton[4];
私有JButton digbtn[]=新JButton[10];
私人JLabel disp;
公共MyCalculator(){
容器c=this.getContentPane();
c、 setLayout(空);
此.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这个.设置大小(212290);
此参数为.setresizeable(false);
disp=新的JLabel(“0”);
分界点(5,10190,30);;
c、 添加(disp);
Cbtn=新的按钮(“C”);
Cbtn.立根(105200,45,45);
c、 添加(Cbtn);
eqbtn=新的JButton(“=”);
方程b.立根(5200,45,45);
c、 添加(eqbtn);
对于(int i=0;i
您使用的是什么Java版本?版本8更新77(build 1.8.0_77-b03)我怀疑这可能是由于Netbeans设置造成的。我想说的是,只导入您需要的包是一种很好的做法。避免使用*导入所有内容。是的,我试过了,效果很好,但这没有任何意义,导入整个软件包(无论性能如何,我知道这不是一个好主意)不应该完成这项工作吗?!此外,我还有其他项目,在这些项目中,我在同一个编译器上导入了相同的包,效果很好。创建项目/文件或尝试在项目中查找配置错误