首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >类不是抽象的,不会覆盖抽象方法AWT程序

类不是抽象的,不会覆盖抽象方法AWT程序
EN

Stack Overflow用户
提问于 2019-04-16 06:45:19
回答 2查看 0关注 0票数 0
代码语言:javascript
复制
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.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事件之前添加@Override,仍然不起作用。

EN

回答 2

Stack Overflow用户

发布于 2019-04-16 15:44:34

我注意到你为你按钮的actionlistener实现了actionperformed。当你声明要实现一个接口时,你需要在你的类中使用一个单独的actionperformed方法。

代码语言:javascript
复制
public class QuadraticSolver implements ActionListener{
@Override 
public void  actionPerformed(ActionEvent){}
}
票数 0
EN

Stack Overflow用户

发布于 2019-04-16 16:30:19

QuadraticSolver实现ActionListener,它应该也实现actionPerformed

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

为了解决这个问题,添加 actionPerformedQuadraticSolver或不要求QuadraticSolver实现该接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档