java - 尝试让 ActionListener 工作但出现错误

标签 java swing actionlistener

我正在努力完成迟到的学校作业。作业是构建一个 GUI 程序,获取成绩和加权平均值,然后显示最终成绩。该程序是用 Java 编写的。我遇到的问题是试图让 ActionListener 工作,但它给了我一个错误,说 { excepted.任何指导帮助将不胜感激。

    package programmingproblem6;

//This is the class file for the program used to create the GUI
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Gui extends JFrame {

    private JLabel Score1, Score2, Score3, Score4, Avg1, Avg2, Avg3, Avg4, Fgrade;
    private JTextField Testscore1, Testscore2, Testscore3, Testscore4, Weightavg1, Weightavg2, Weightavg3, Weightavg4, Finalgrade;
    private JButton Calc, Reset;

public Gui(){
    super("Calculate Weighted Test Scores");
    setLayout(new FlowLayout());

    Score1 = new JLabel("Test Score 1:");
    Testscore1 = new JTextField(2);
    Avg1 = new JLabel("Weighted Avg 1:");
    Weightavg1 = new JTextField(4);
    Score2 = new JLabel("Test Score 2:");
    Testscore2 = new JTextField(2);
    Avg2 = new JLabel("Weighted Avg 2:");
    Weightavg2 = new JTextField(4);
    Score3 = new JLabel("Test Score 1:");
    Testscore3 = new JTextField(2);
    Avg3 = new JLabel("Weighted Avg 1:");
    Weightavg3 = new JTextField(4);
    Score4 = new JLabel("Test Score 1:");
    Testscore4 = new JTextField(2);
    Avg4 = new JLabel("Weighted Avg 1:");
    Weightavg4 = new JTextField(4);
    Fgrade = new JLabel("Final Grade:");
    Finalgrade = new JTextField(4);
    Calc = new JButton("Calculate");
    Reset = new JButton("Reset");

    getContentPane().add(Score1);
    getContentPane().add(Testscore1);
    getContentPane().add(Avg1);
    getContentPane().add(Weightavg1);
    getContentPane().add(Score2);
    getContentPane().add(Testscore2);
    getContentPane().add(Avg2);
    getContentPane().add(Weightavg2);
    getContentPane().add(Score3);
    getContentPane().add(Testscore3);
    getContentPane().add(Avg3);
    getContentPane().add(Weightavg3);
    getContentPane().add(Score3);
    getContentPane().add(Testscore4);
    getContentPane().add(Avg3);
    getContentPane().add(Weightavg4);
    getContentPane().add(Fgrade);
    getContentPane().add(Finalgrade);
    getContentPane().add(Calc);
    getContentPane().add(Reset);

    CalculateClass Calculate = new CalculateClass();
    Calc.addActionListener(Calculate);

    //RestClass Resttxt = new RestClass();
    //Reset.addActionListener(Resttxt);

}
private class CalculateClass implements ActionListener(){    
       public void actionPerformed(ActionEvent event){

//getting the values from the textboxes and converting them to numbers
        int num1 = Integer.parseInt(Testscore1.getText());
        int num2 = Integer.parseInt(Testscore2.getText());
        int num3 = Integer.parseInt(Testscore3.getText());
        int num4 = Integer.parseInt(Testscore4.getText());
        float num5 = Float.parseFloat(Weightavg1.getText());
        float num6 = Float.parseFloat(Weightavg2.getText());
        float num7 = Float.parseFloat(Weightavg3.getText());
        float num8 = Float.parseFloat(Weightavg4.getText());
        float Total; 
        //performing the calculation for the grade.
        Total = num1*num5+num2*num6+num3*num7+num4*num8/100;
        //conveting the final number back to a string.
        Finalgrade.setText(Float.toString(Total));



    }

}

最佳答案

实现 ActionListener 后删除“()”。

private class CalculateClass implements ActionListener{

}

原因是 ActionListener 是一个接口(interface),而不是一个方法,并且不应该存在任何方法体。

关于java - 尝试让 ActionListener 工作但出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36212011/

相关文章:

java - HTML文档 : does Swing "optimize out" span elements?

java - Swing JProgressBar 用于显示方法中花费的时间

java - 按钮放置和位置不起作用

java - 单击按钮时增加一个值并使用该值更新文本字段

java - 如何向后读取整数文件

java - 匿名内部类的 ClassName 相同 - obj.getClass().getName()

java - 后台服务 android java

java - 减少测试中的 spring ContextConfiguration 样板

java - JButton ActionListener 一般查询

java - 如何修复 readJavaFormatString 错误?