Java ArrayList从gui打印代码

Java ArrayList从gui打印代码,java,swing,arraylist,jpanel,actionlistener,Java,Swing,Arraylist,Jpanel,Actionlistener,我有严重的麻烦 我必须编写的程序是一个GUI,它本质上要求: 课程(例如:cpsc130) 名称(例如:计算机编程2) 你在课程中获得的学分数量(例3) 和你的成绩(前A,B) 我不太擅长ActionListeners,显然我不知道我在用它做什么。我必须制作一个ArrayList来获取信息 一个ArrayList(实例变量),例如courseList,用于存储您添加的课程 四个内部的ActionListener类,每个类都实现其 行动已经完成。具体地说 AddCourseListener:

我有严重的麻烦

我必须编写的程序是一个GUI,它本质上要求:

  • 课程(例如:cpsc130)
  • 名称(例如:计算机编程2)
  • 你在课程中获得的学分数量(例3)
  • 和你的成绩(前A,B)
我不太擅长
ActionListener
s,显然我不知道我在用它做什么。我必须制作一个
ArrayList
来获取信息

  • 一个
    ArrayList
    (实例变量),例如courseList,用于存储您添加的课程
  • 四个内部的
    ActionListener
    类,每个类都实现其 行动已经完成。具体地说
  • AddCourseListener:读取输入并创建课程对象,添加课程 对象添加到courseList中,并将其附加到输出区域中
  • CalGPAListener:阅读课程列表中的所有课程学分和成绩,添加 然后计算总平均成绩。假设A是4,B是3,C是2, D是1,E是0。GPA=总和(积分点)=总积分。例如(图 1) ,你修了3门课:130(3学分,A级),131(3学分,A级) B) ,和370(4学分,B级),那么你的GPA=(3*4+3*3+4*3)/(3+3+4) =3.3
  • ResetInputListener:重置所有输入ELD
  • ResetOutputListener:重置输出区域
这些都是我需要的
ActionListener
s。到目前为止,我将向您展示我的代码。编译后,它将显示所有的
按钮
s和
TextArea
s,
ActionListener
s是我唯一需要帮助的东西

import javax.swing.*;
import java.awt.event.*;
import java.util.*;


public class DegreeWorksFrame extends JFrame  {
    private JLabel courseCodeLabel;
    private JTextField courseCodeField;

    private JLabel courseNameLabel;
    private JTextField courseNameField;

    private JLabel courseCreditLabel;
    private JTextField courseCreditField;

    private JLabel courseGradeLabel;
    private JTextField courseGradeField;

    private JTextArea resultArea;

    private double sum =0;    
    private double totalCredits=0;

    private String code = "";
    private String name = "";
    private String credit = "";
    private String grade = "";

    private String heading = ("Code\tName\tCredit\tGrade" + "\n");
    private ArrayList<Course> courseList;

    private JButton AddCourse;
    private JButton CalculateGPA;
    private JButton ResetInput;
    private JButton ResetOutput;

    private static final int AREA_ROWS = 15;
    private static final int AREA_COLUMNS = 35;

    private final int FRAME_HEIGHT =400;
    private final int FRAME_WIDTH = 500;

    final int FIELD_WIDTH = 30;

    public DegreeWorksFrame() {
        resultArea = new JTextArea(AREA_ROWS, AREA_COLUMNS);
        resultArea.setText(heading);
        resultArea.setEditable(false);

        createTextField1();
        createTextField2();
        createTextField3();
        createTextField4();

        createButtonAddCourse();
        createButtonCalculateGPA();
        createButtonResetInput();
        createButtonResetOutput();

        createPanel();

        setSize(FRAME_WIDTH, FRAME_HEIGHT);
    }

    private void createTextField1() {
        courseCodeLabel = new JLabel("Enter Course Code: ");
        courseCodeField = new JTextField(FIELD_WIDTH);
        courseCodeField.setText(code);
    }

    private void createTextField2() {
        courseNameLabel = new JLabel("Enter Course Name: ");

        courseNameField = new JTextField(FIELD_WIDTH);
        courseNameField.setText(name);
    }

    private void createTextField3() {
        courseCreditLabel = new JLabel("Enter Course Credit: ");

        courseCreditField = new JTextField(FIELD_WIDTH);
        courseCreditField.setText(credit);
    }

    private void createTextField4() {
        courseGradeLabel = new JLabel("Enter Course Grade: ");

        courseGradeField = new JTextField(FIELD_WIDTH);
        courseGradeField.setText(grade);
    }


    private void createButtonAddCourse() {
        AddCourse = new JButton ("Add Courses: ");
        ActionListener listener = new addCourseListener();
        AddCourse.addActionListener(listener);
    }

    class addCourseListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            courseList = new ArrayList();
            String receiveList = userList.get
        }
    }

    private void createButtonCalculateGPA() {
        CalculateGPA = new JButton ("Calculate GPA");
        ActionListener listener = new addCourseListener();
        AddCourse.addActionListener(listener);
    }

    class calculateGPAListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {

        }
    }

    private void createButtonResetInput() {
        ResetInput = new JButton ("Reset Input");
        ActionListener listener = new addCourseListener();
        AddCourse.addActionListener(listener);
    }


    class resetInputListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {

        }
    }

    private void createButtonResetOutput() {
        ResetOutput = new JButton ("Reset Output");
        ActionListener listener = new addCourseListener();
        AddCourse.addActionListener(listener);
    }

    class resetOutputListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {

        }
    }

    private void createPanel() {
        JPanel panel = new JPanel();
        panel.add(courseCodeLabel);
        panel.add(courseCodeField);
        panel.add(courseNameLabel);
        panel.add(courseNameField);
        panel.add(courseCreditLabel);
        panel.add(courseCreditField);
        panel.add(courseGradeLabel);
        panel.add(courseGradeField);

        //buttons
        panel.add(AddCourse);
        panel.add(CalculateGPA);
        panel.add(ResetInput);
        panel.add(ResetOutput);

        //Scroll bar
        JScrollPane scrollPane = new JScrollPane(resultArea);
        panel.add(scrollPane);
        add(panel);
    }
}
import javax.swing.*;
导入java.awt.event.*;
导入java.util.*;
公共类DegreeWorksFrame扩展了JFrame{
私人JLabel courseCodeLabel;
私人JTextField courseCodeField;
私人JLabel courseNameLabel;
私人JTextField courseNameField;
私人JLabel课程编辑标签;
私人JTextField Coursecredfield;
私人JLabel courseGradeLabel;
私人JTextField courseGradeField;
私有区域结果区;
私人双和=0;
私人双积分=0;
私有字符串代码=”;
私有字符串名称=”;
私人字符串信贷=”;
私人字符串等级=”;
私有字符串标题=(“代码\tName\tCredit\tGrade”+“\n”);
私人ArrayList courseList;
私人JButton-AddCourse;
私人JButton-CalculateGPA;
私有JButton重置输入;
私有JButton重置输出;
专用静态最终int区域_行=15;
专用静态最终int区域_列=35;
专用最终内部框架高度=400;
专用最终整数帧_宽度=500;
最终整型字段_宽度=30;
公共DegreeWorksFrame(){
resultArea=新的JTextArea(AREA\u行、AREA\u列);
结果a.setText(标题);
resultArea.setEditable(false);
createTextField1();
createTextField2();
createTextField3();
createTextField4();
createButtonAddCourse();
createButtonCalculateGPA();
createButtonResetInput();
createButtonResetOutput();
createPanel();
设置尺寸(框宽、框高);
}
私有void createTextField1(){
courseCodeLabel=新的JLabel(“输入课程代码:”);
courseCodeField=新的JTextField(字段宽度);
courseDefield.setText(代码);
}
私有void createTextField2(){
courseNameLabel=new JLabel(“输入课程名称:”);
courseNameField=新的JTextField(字段宽度);
courseNameField.setText(名称);
}
私有void createTextField3(){
courseCreditLabel=新的JLabel(“输入课程学分:”);
CourseCredField=新的JTextField(字段宽度);
courseCreditField.setText(学分);
}
私有void createTextField4(){
courseGradeLabel=新的JLabel(“输入课程成绩:”);
courseGradeField=新的JTextField(字段宽度);
courseGradeField.setText(年级);
}
私有void createButtonAddCourse(){
AddCourse=newjbutton(“添加课程:”);
ActionListener=new addCourseListener();
AddCourse.addActionListener(listener);
}
类addCourseListener实现ActionListener{
已执行的公共无效操作(操作事件){
courseList=新的ArrayList();
字符串receiveList=userList.get
}
}
私有void createButtonCalculateGPA(){
CalculateGPA=新的JButton(“计算GPA”);
ActionListener=new addCourseListener();
AddCourse.addActionListener(listener);
}
类calculateGPAListener实现ActionListener{
已执行的公共无效操作(操作事件){
}
}
私有void createButtonResetInput(){
重置输入=新的JButton(“重置输入”);
ActionListener=new addCourseListener();
AddCourse.addActionListener(listener);
}
类resetInputListener实现ActionListener{
已执行的公共无效操作(操作事件){
}
}
私有void createButtonResetOutput(){
ResetOutput=新的JButton(“重置输出”);
ActionListener=new addCourseListener();
AddCourse.addActionListener(listener);
}
类resetOutputListener实现ActionListener{
已执行的公共无效操作(操作事件){
}
}
私有void createPanel(){
JPanel面板=新的JPanel();
添加面板(courseCodeLabel);
面板。添加(courseCodeField);
panel.add(courseNameLabel);
面板添加(courseNameField);
面板。添加(courseCreditLabel);
panel.add(coursecredfield);
面板。添加(courseGradeLabel);
面板。添加(courseGradeField);
//钮扣
面板。添加(添加课程);
面板。添加(计算EGPA);
面板。添加(重置输入);
a小组
private void createButtonAddCourse() {
    AddCourse = new JButton ("Add Courses: ");
    AddCourse.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // Create a new Course object and add it to the ArrayList here
        }
    });
}

...

private void createButtonCalculateGPA() {
    CalculateGPA = new JButton ("Calculate GPA");
    CalculateGPA.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // Iterate over the ArrayList and calculate the overall GPA for each course
        }
    });
}