类不是抽象的,不重写抽象方法AWT计划 [英] Class is not abstract and does not override abstract method AWT Program

查看:136
本文介绍了类不是抽象的,不重写抽象方法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();
}
}

这就是我的code。它给我一个错误说QuadraticSolver.java:4:错误:QuadraticSolver不是抽象的,不覆盖的ActionListener抽象方法的actionPerformed(ActionEvent的)
QuadraticSolver扩展框架公共类实现的ActionListener,WindowListener的

So this is my code. it give me an error saying "QuadraticSolver.java:4: error: QuadraticSolver is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener public class QuadraticSolver extends Frame implements ActionListener, WindowListener"

我不知道该怎么做。我尝试了所有的ActionListener事件之前添加@覆盖,仍不能正常工作。

I have no idea what to do. I tried adding @Override before all ActionListener events, Still doesn't work.

推荐答案

由于 QuadraticSolver 工具的ActionListener ,它应该实施的actionPerformed

Since QuadraticSolver implements ActionListener, it should implement actionPerformed.

您在一个匿名类中实现该方法。

You implemented that method in an anonymous class.

要解决这个问题,可以添加的actionPerformed 的实施 QuadraticSolver 或不要求 QuadraticSolver 来实现该接口。

To solve it, either add an implementation of actionPerformed to QuadraticSolver or don't require QuadraticSolver to implement that interface.

这篇关于类不是抽象的,不重写抽象方法AWT计划的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆