java - java类不是抽象的,并且不重写抽象方法AWT程序

  显示原文与译文双语对照的内容

import java.awt.*;


import java.awt.event.*;



public class QuadraticSolver extends Frame implements ActionListener, WindowListener


{


private TextField tfX2;


private TextField tfX;


private TextField tfNum;


private TextField tfVal1;


private TextField tfVal2;


private TextField tfRoots;



private Label lblX2;


private Label lblX;


private Label lblNum;


private Label lblVal1;


private Label lblVal2;


private Label lblRoots;



private Button btnCheckRoots;


private Button btnCalc;


private Button btnClear;



double a = 0, b = 0, c = 0;


double Val1 = 0, Val2 = 0, Discriminant = 0;


String StrVal1, StrVal2;



public QuadraticSolver()


{


 Panel panelX2Comp = new Panel(new FlowLayout());


 {


 lblX2 = new Label("Enter Co-Efficient Of X^2:");


 panelX2Comp.add (lblX2);



 tfX2 = new TextField("", 20);


 tfX2.setEditable(true);


 panelX2Comp.add(tfX2);


 }



 Panel panelXComp = new Panel(new FlowLayout());


 {


 lblX = new Label("Enter Co-Efficient Of X:");


 panelXComp.add(lblX);



 tfX = new TextField("", 20);


 tfX.setEditable(true);


 panelXComp.add(tfX);


 }



 Panel panelNumComp = new Panel(new FlowLayout());


 {


 lblNum = new Label("Enter Number:");


 panelNumComp.add(lblNum);



 tfNum = new TextField("", 20);


 tfNum.setEditable(true);


 panelNumComp.add(tfNum);


 }



 Panel panelButtons = new Panel(new FlowLayout());


 {


 btnCalc = new Button("Calculate");


 btnCalc.setEnabled(false);


 panelButtons.add(btnCalc);


 {


 btnCalc.addActionListener(new ActionListener()


 {


 @Override


 public void actionPerformed(ActionEvent e)


 {


 a = Double.parseDouble(tfX2.getText());


 b = Double.parseDouble(tfX.getText());


 c = Double.parseDouble(tfNum.getText());



 Val1 = (-b + Math.sqrt(Discriminant))/(2 * a);


 Val2 = (-b - Math.sqrt(Discriminant))/(2 * a);



 StrVal1 = String.valueOf(Val1);


 StrVal2 = String.valueOf(Val2);



 tfVal1.setText(StrVal1);


 tfVal2.setText(StrVal2);



 tfX2.setText("");


 tfX.setText("");


 tfNum.setText("");



 btnCalc.setEnabled(false);


 }


 }


 );


 }



 btnCheckRoots = new Button("Nature Of Roots");


 panelButtons.add(btnCheckRoots);


 {


 btnCheckRoots.addActionListener(new ActionListener()


 {


 @Override


 public void actionPerformed(ActionEvent e)


 {


 a = Double.parseDouble(tfX2.getText());


 b = Double.parseDouble(tfX.getText());


 c = Double.parseDouble(tfNum.getText());



 Discriminant = (b*b) - (4*(a*c));



 if (Discriminant == 0)


 {


 tfRoots.setText("Equal");


 btnCalc.setEnabled(true);


 }


 else if (Discriminant <0)


 {


 tfRoots.setText("Imaginary");


 }


 else


 {


 tfRoots.setText("Real, Distinct");


 btnCalc.setEnabled(true);


 }



 }



 }


 );


 }



 btnClear = new Button("Clear");


 panelButtons.add(btnClear);


 {


 btnClear.addActionListener(new ActionListener() 


 {



 @Override


 public void actionPerformed(ActionEvent e)


 {


 a = 0; b = 0; c = 0;


 Val1 = 0; Val2 = 0; Discriminant = 0;



 tfX2.setText("");


 tfX.setText("");


 tfNum.setText("");


 tfVal1.setText("");


 tfVal2.setText("");


 tfRoots.setText("");


 }


 }


 );


 }



 } 



 Panel panelRoots = new Panel(new FlowLayout());


 {


 lblRoots = new Label ("Nature Of Roots:");


 panelRoots.add(lblRoots);



 tfRoots = new TextField("", 20);


 tfRoots.setEditable(false);


 panelRoots.add(tfRoots);


 }



 Panel panelValues = new Panel(new FlowLayout());


 {


 lblVal1 = new Label("First Value:");


 panelValues.add(lblVal1);



 tfVal1 = new TextField("", 10);


 tfVal1.setEditable(false);


 panelValues.add(tfVal1);



 lblVal2 = new Label("Second Value:");


 panelValues.add(lblVal2);



 tfVal2 = new TextField("", 10);


 tfVal2.setEditable(false);


 panelValues.add(tfVal2);



 }



 setLayout(new FlowLayout());//"this" Frame sets to BorderLayout


 add(panelX2Comp);


 add(panelXComp);


 add(panelNumComp);


 add(panelButtons);


 add(panelRoots);


 add(panelValues);



 setTitle("Matrix Multiplier");//"this" Frame sets title


 setSize(400, 200);//"this" Frame sets initial size


 setVisible(true); 



 addWindowListener(this);


}



 @Override


public void windowClosing(WindowEvent e) 


{


 System.exit(0);//Terminate the program


}


 @Override


 public void windowOpened(WindowEvent e) { }


 @Override


 public void windowClosed(WindowEvent e) { }


 @Override


 public void windowIconified(WindowEvent e) { }


 @Override


 public void windowDeiconified(WindowEvent e) { }


 @Override


 public void windowActivated(WindowEvent e) { }


 @Override


 public void windowDeactivated(WindowEvent e) { }



public static void main(String args[])


{


 new QuadraticSolver();


}


}



这就是我的代码。 它给我一个错误说"quadraticsolver: 4: 错误:QuadraticSolver不是抽象的,并且不重写 ActionListener public 类QuadraticSolver扩展框架中的抽象方法 actionPerformed(ActionEvent) 。WindowListener"

我不知道该怎么办. 试图在所有ActionListener事件之前添加 @Override,但仍不工作。

时间:

...