title: Class is not abstract and does not override abstract method AWT Program
body: <pre><code>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 &lt; 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();
  }
  }
  </code></pre>
  
  <p>So this is my code. it give me an error saying "QuadraticSolver.java:4: error: <code>QuadraticSolver</code> is not <code>abstract</code> and does not override abstract method <code>actionPerformed(ActionEvent)</code> in <code>ActionListener</code>
  <code>public class QuadraticSolver extends Frame implements ActionListener, WindowListener</code>"</p>
  
  <p>I have no idea what to do. I tried adding @Override before all ActionListener events, Still doesn't work.</p>