Java 编写一个方法,从两个不同的数组中提取信息并将其打印到JTextField中

Java 编写一个方法,从两个不同的数组中提取信息并将其打印到JTextField中,java,arrays,string,methods,jtextarea,Java,Arrays,String,Methods,Jtextarea,这个项目的目标是创建四个类:一个学生类、一个研究生类、一个经理类和一个GUI类。在GUI中有两个单选按钮:一个用于学生,一个用于研究生。根据选择哪一个,Manager类应该负责使用两个数组创建和存储Student或Gradstuent对象。我还为我的GUI添加了一个按钮,用来打印所有主修“计算机科学”的学生。然而,在如何编写此方法方面,我遇到了麻烦。在此问题上的任何帮助都将不胜感激。我将在下面发布我的课程。谢谢大家! 学生班 public class Student { protecte

这个项目的目标是创建四个类:一个学生类、一个研究生类、一个经理类和一个GUI类。在GUI中有两个单选按钮:一个用于学生,一个用于研究生。根据选择哪一个,Manager类应该负责使用两个数组创建和存储Student或Gradstuent对象。我还为我的GUI添加了一个按钮,用来打印所有主修“计算机科学”的学生。然而,在如何编写此方法方面,我遇到了麻烦。在此问题上的任何帮助都将不胜感激。我将在下面发布我的课程。谢谢大家!

学生班

public class Student {
    protected String name;
    protected String address;
    protected double balance;
    protected String major;

    // Constructs fields
    public Student(String name, String address, String balance, String major) {
        this.name = name;
        this.address = address;
        this.major = major;
        try {
            this.balance = Double.parseDouble(balance);
        }
        catch(NumberFormatException e) {
            this.balance = 0;
        }
    }

    public String setName(String name) {
        return name;
    }

    public String setAddress(String address) {
        return address;
    }

    public double setBalance(double balance) {
        return balance;
    }

    public String setMajor(String major) {
        return major;

    }

    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class GradStudent extends Student {

    public GradStudent(String name, String address, String balance, String major) {
        super(name, address, balance, major);
    }



    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class Manager {
    public Student[] students = new Student[50];
    public int counter1 = 0;

    public GradStudent[] gradStudents = new GradStudent[50];
    public int counter2 = 0;

    public Manager() {

    }

    public void addStudent(String name, String address, String balance, String major) {
        Student student1 = new Student(name, address, balance, major);
        students[counter1] = student1;
                counter1++;
    }
    public String getLastStudent() {
        return "Student added: " + students[counter1-1] +"\n";
    }

    public void addGradStudent(String name, String address, String balance, String major) {
        GradStudent student2 = new GradStudent(name, address, balance, major);
        gradStudents[counter2] = student2;
                counter2++;
    }
    public String getLastGradStudent() {
        return "Graduate Student added: " + gradStudents[counter2-1] +"\n";
    }

    public String getAverageBalance(){
        double sum = 0;
        for (int i = 0; i < counter1; i++) {
            sum += students[i].setBalance(counter1);
        }

        for(int i = 0; i < counter2; i++) {
            sum+= students[i].setBalance(counter2);
        }

        double average = sum / (counter1+counter2);
        return average+"";
        }

}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;

public class GUI extends JFrame {
    private JRadioButton jrbStudent = new JRadioButton("Student");
    private JRadioButton jrbGraduate = new JRadioButton("Graduate");
    private JTextField name = new JTextField(20);
    private JTextField address = new JTextField(20);
    private JTextField balance = new JTextField(20);
    private JTextField major = new JTextField(20);
    private JButton jbtSubmit = new JButton("Submit");
    private JTextArea echoStudent = new JTextArea();

    private JButton printStudentNames = new JButton("Print Student's Names");
    private JButton printGradStudentNames = new JButton(
            "Print Graduate Student's Names");
    private JButton calcBalance = new JButton(
            "Calculate Average Balance of All Students");
    private JButton compSciMajor = new JButton(
            "Displays Computer Science Major Students");

    private Manager m1 = new Manager();

    public GUI() {

        // Creates panel P1 and adds the components
        JPanel p1 = new JPanel(new GridLayout(9, 1, 10, 10));
        p1.add(new JLabel("Name: "));
        p1.add(name);
        p1.add(new JLabel("Address: "));
        p1.add(address);
        p1.add(new JLabel("Balance: "));
        p1.add(balance);
        p1.add(new JLabel("Major: "));
        p1.add(major);
        p1.add(jrbStudent);
        p1.add(jrbGraduate);
        p1.add(new JLabel("Submit Button: "));
        p1.add(jbtSubmit);
        p1.add(printStudentNames);
        p1.add(printGradStudentNames);
        p1.add(calcBalance);
        p1.add(compSciMajor);
        p1.add(new JLabel("Submitted Text: "));

        // Creates a radio-button group to group both buttons
        ButtonGroup group = new ButtonGroup();
        group.add(jrbStudent);
        group.add(jrbGraduate);

        // Adds the panel and text area to the frame
        add(p1);
        p1.add(echoStudent);
        echoStudent.setEditable(false);

        // Creates a listener and registers it with the submit button
        SubmitListener l1 = new SubmitListener();
        jbtSubmit.addActionListener(l1);

        // Creates a listener and registers it with the radio buttons
        JRBListener l2 = new JRBListener();
        jrbStudent.addActionListener(l2);
        jrbGraduate.addActionListener(l2);

        // Creates a listener and registers it with the PrintStudentNames button
        StudentListener l3 = new StudentListener();
        printStudentNames.addActionListener(l3);

        // Creates a listener and registers it with the PrintGradStudentNames button
        GradStudentListener l4 = new GradStudentListener();
        printGradStudentNames.addActionListener(l4);

        // Creates a listener and registers it with the calcBalance button
        CalcBalanceListener l5 = new CalcBalanceListener();
        calcBalance.addActionListener(l5);
    }

    // Class to handle the submit button
    class SubmitListener implements ActionListener {
        public void actionPerformed(ActionEvent a) {
            Student[] students = new Student[50];
            int arrayLocation = 0;

            Student student1 = new Student(name.getText(), address.getText(),
                    balance.getText(), major.getText());
            // Checks remaining array space
            if (arrayLocation < 50) {
                students[arrayLocation] = student1;
                ++arrayLocation;
            }
            // Echos back entered text while storing the previous text
            echoStudent.setText(echoStudent.getText() + "\n"
                    + student1.toString());
        }
    }

    // Class to handle the radio buttons
    class JRBListener implements ActionListener {
        public void actionPerformed(ActionEvent b) {
            if (b.getSource() == jrbStudent) {
                m1.addStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent
                        .setText("Created Student: \n" + m1.getLastStudent());
            }

            if (jrbGraduate.isSelected()) {
                m1.addGradStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent.setText("Created Graduate Student: \n"
                        + m1.getLastGradStudent());
            }
        }
    }
    // Class to handle the "Print Student's Names" button
    class StudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent c) {

            echoStudent.setText(m1.students[counter1].name);

        }

    }
    // Class to handle the "Print Graduate Student's Names" button
    class GradStudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent d) {

            echoStudent.setText(m1.gradStudents[counter2].name);

        }

    }
    // Class to handle the "Calculate Average Balance of All Students" button
    class CalcBalanceListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            echoStudent.setText(getAverageBalance());
        }
    }
    // Class to handle the "Displays Computer Science Major Students" button
    class CompSciMajorListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent f) {

        }
    }

    public static void main(String[] args) {
        GUI frame = new GUI();
        frame.setTitle("Information Interface");
        frame.setSize(1200, 900);
        frame.setLocationRelativeTo(null); // Center the frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

}
研究生班

public class Student {
    protected String name;
    protected String address;
    protected double balance;
    protected String major;

    // Constructs fields
    public Student(String name, String address, String balance, String major) {
        this.name = name;
        this.address = address;
        this.major = major;
        try {
            this.balance = Double.parseDouble(balance);
        }
        catch(NumberFormatException e) {
            this.balance = 0;
        }
    }

    public String setName(String name) {
        return name;
    }

    public String setAddress(String address) {
        return address;
    }

    public double setBalance(double balance) {
        return balance;
    }

    public String setMajor(String major) {
        return major;

    }

    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class GradStudent extends Student {

    public GradStudent(String name, String address, String balance, String major) {
        super(name, address, balance, major);
    }



    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class Manager {
    public Student[] students = new Student[50];
    public int counter1 = 0;

    public GradStudent[] gradStudents = new GradStudent[50];
    public int counter2 = 0;

    public Manager() {

    }

    public void addStudent(String name, String address, String balance, String major) {
        Student student1 = new Student(name, address, balance, major);
        students[counter1] = student1;
                counter1++;
    }
    public String getLastStudent() {
        return "Student added: " + students[counter1-1] +"\n";
    }

    public void addGradStudent(String name, String address, String balance, String major) {
        GradStudent student2 = new GradStudent(name, address, balance, major);
        gradStudents[counter2] = student2;
                counter2++;
    }
    public String getLastGradStudent() {
        return "Graduate Student added: " + gradStudents[counter2-1] +"\n";
    }

    public String getAverageBalance(){
        double sum = 0;
        for (int i = 0; i < counter1; i++) {
            sum += students[i].setBalance(counter1);
        }

        for(int i = 0; i < counter2; i++) {
            sum+= students[i].setBalance(counter2);
        }

        double average = sum / (counter1+counter2);
        return average+"";
        }

}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;

public class GUI extends JFrame {
    private JRadioButton jrbStudent = new JRadioButton("Student");
    private JRadioButton jrbGraduate = new JRadioButton("Graduate");
    private JTextField name = new JTextField(20);
    private JTextField address = new JTextField(20);
    private JTextField balance = new JTextField(20);
    private JTextField major = new JTextField(20);
    private JButton jbtSubmit = new JButton("Submit");
    private JTextArea echoStudent = new JTextArea();

    private JButton printStudentNames = new JButton("Print Student's Names");
    private JButton printGradStudentNames = new JButton(
            "Print Graduate Student's Names");
    private JButton calcBalance = new JButton(
            "Calculate Average Balance of All Students");
    private JButton compSciMajor = new JButton(
            "Displays Computer Science Major Students");

    private Manager m1 = new Manager();

    public GUI() {

        // Creates panel P1 and adds the components
        JPanel p1 = new JPanel(new GridLayout(9, 1, 10, 10));
        p1.add(new JLabel("Name: "));
        p1.add(name);
        p1.add(new JLabel("Address: "));
        p1.add(address);
        p1.add(new JLabel("Balance: "));
        p1.add(balance);
        p1.add(new JLabel("Major: "));
        p1.add(major);
        p1.add(jrbStudent);
        p1.add(jrbGraduate);
        p1.add(new JLabel("Submit Button: "));
        p1.add(jbtSubmit);
        p1.add(printStudentNames);
        p1.add(printGradStudentNames);
        p1.add(calcBalance);
        p1.add(compSciMajor);
        p1.add(new JLabel("Submitted Text: "));

        // Creates a radio-button group to group both buttons
        ButtonGroup group = new ButtonGroup();
        group.add(jrbStudent);
        group.add(jrbGraduate);

        // Adds the panel and text area to the frame
        add(p1);
        p1.add(echoStudent);
        echoStudent.setEditable(false);

        // Creates a listener and registers it with the submit button
        SubmitListener l1 = new SubmitListener();
        jbtSubmit.addActionListener(l1);

        // Creates a listener and registers it with the radio buttons
        JRBListener l2 = new JRBListener();
        jrbStudent.addActionListener(l2);
        jrbGraduate.addActionListener(l2);

        // Creates a listener and registers it with the PrintStudentNames button
        StudentListener l3 = new StudentListener();
        printStudentNames.addActionListener(l3);

        // Creates a listener and registers it with the PrintGradStudentNames button
        GradStudentListener l4 = new GradStudentListener();
        printGradStudentNames.addActionListener(l4);

        // Creates a listener and registers it with the calcBalance button
        CalcBalanceListener l5 = new CalcBalanceListener();
        calcBalance.addActionListener(l5);
    }

    // Class to handle the submit button
    class SubmitListener implements ActionListener {
        public void actionPerformed(ActionEvent a) {
            Student[] students = new Student[50];
            int arrayLocation = 0;

            Student student1 = new Student(name.getText(), address.getText(),
                    balance.getText(), major.getText());
            // Checks remaining array space
            if (arrayLocation < 50) {
                students[arrayLocation] = student1;
                ++arrayLocation;
            }
            // Echos back entered text while storing the previous text
            echoStudent.setText(echoStudent.getText() + "\n"
                    + student1.toString());
        }
    }

    // Class to handle the radio buttons
    class JRBListener implements ActionListener {
        public void actionPerformed(ActionEvent b) {
            if (b.getSource() == jrbStudent) {
                m1.addStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent
                        .setText("Created Student: \n" + m1.getLastStudent());
            }

            if (jrbGraduate.isSelected()) {
                m1.addGradStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent.setText("Created Graduate Student: \n"
                        + m1.getLastGradStudent());
            }
        }
    }
    // Class to handle the "Print Student's Names" button
    class StudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent c) {

            echoStudent.setText(m1.students[counter1].name);

        }

    }
    // Class to handle the "Print Graduate Student's Names" button
    class GradStudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent d) {

            echoStudent.setText(m1.gradStudents[counter2].name);

        }

    }
    // Class to handle the "Calculate Average Balance of All Students" button
    class CalcBalanceListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            echoStudent.setText(getAverageBalance());
        }
    }
    // Class to handle the "Displays Computer Science Major Students" button
    class CompSciMajorListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent f) {

        }
    }

    public static void main(String[] args) {
        GUI frame = new GUI();
        frame.setTitle("Information Interface");
        frame.setSize(1200, 900);
        frame.setLocationRelativeTo(null); // Center the frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

}
经理级

public class Student {
    protected String name;
    protected String address;
    protected double balance;
    protected String major;

    // Constructs fields
    public Student(String name, String address, String balance, String major) {
        this.name = name;
        this.address = address;
        this.major = major;
        try {
            this.balance = Double.parseDouble(balance);
        }
        catch(NumberFormatException e) {
            this.balance = 0;
        }
    }

    public String setName(String name) {
        return name;
    }

    public String setAddress(String address) {
        return address;
    }

    public double setBalance(double balance) {
        return balance;
    }

    public String setMajor(String major) {
        return major;

    }

    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class GradStudent extends Student {

    public GradStudent(String name, String address, String balance, String major) {
        super(name, address, balance, major);
    }



    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class Manager {
    public Student[] students = new Student[50];
    public int counter1 = 0;

    public GradStudent[] gradStudents = new GradStudent[50];
    public int counter2 = 0;

    public Manager() {

    }

    public void addStudent(String name, String address, String balance, String major) {
        Student student1 = new Student(name, address, balance, major);
        students[counter1] = student1;
                counter1++;
    }
    public String getLastStudent() {
        return "Student added: " + students[counter1-1] +"\n";
    }

    public void addGradStudent(String name, String address, String balance, String major) {
        GradStudent student2 = new GradStudent(name, address, balance, major);
        gradStudents[counter2] = student2;
                counter2++;
    }
    public String getLastGradStudent() {
        return "Graduate Student added: " + gradStudents[counter2-1] +"\n";
    }

    public String getAverageBalance(){
        double sum = 0;
        for (int i = 0; i < counter1; i++) {
            sum += students[i].setBalance(counter1);
        }

        for(int i = 0; i < counter2; i++) {
            sum+= students[i].setBalance(counter2);
        }

        double average = sum / (counter1+counter2);
        return average+"";
        }

}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;

public class GUI extends JFrame {
    private JRadioButton jrbStudent = new JRadioButton("Student");
    private JRadioButton jrbGraduate = new JRadioButton("Graduate");
    private JTextField name = new JTextField(20);
    private JTextField address = new JTextField(20);
    private JTextField balance = new JTextField(20);
    private JTextField major = new JTextField(20);
    private JButton jbtSubmit = new JButton("Submit");
    private JTextArea echoStudent = new JTextArea();

    private JButton printStudentNames = new JButton("Print Student's Names");
    private JButton printGradStudentNames = new JButton(
            "Print Graduate Student's Names");
    private JButton calcBalance = new JButton(
            "Calculate Average Balance of All Students");
    private JButton compSciMajor = new JButton(
            "Displays Computer Science Major Students");

    private Manager m1 = new Manager();

    public GUI() {

        // Creates panel P1 and adds the components
        JPanel p1 = new JPanel(new GridLayout(9, 1, 10, 10));
        p1.add(new JLabel("Name: "));
        p1.add(name);
        p1.add(new JLabel("Address: "));
        p1.add(address);
        p1.add(new JLabel("Balance: "));
        p1.add(balance);
        p1.add(new JLabel("Major: "));
        p1.add(major);
        p1.add(jrbStudent);
        p1.add(jrbGraduate);
        p1.add(new JLabel("Submit Button: "));
        p1.add(jbtSubmit);
        p1.add(printStudentNames);
        p1.add(printGradStudentNames);
        p1.add(calcBalance);
        p1.add(compSciMajor);
        p1.add(new JLabel("Submitted Text: "));

        // Creates a radio-button group to group both buttons
        ButtonGroup group = new ButtonGroup();
        group.add(jrbStudent);
        group.add(jrbGraduate);

        // Adds the panel and text area to the frame
        add(p1);
        p1.add(echoStudent);
        echoStudent.setEditable(false);

        // Creates a listener and registers it with the submit button
        SubmitListener l1 = new SubmitListener();
        jbtSubmit.addActionListener(l1);

        // Creates a listener and registers it with the radio buttons
        JRBListener l2 = new JRBListener();
        jrbStudent.addActionListener(l2);
        jrbGraduate.addActionListener(l2);

        // Creates a listener and registers it with the PrintStudentNames button
        StudentListener l3 = new StudentListener();
        printStudentNames.addActionListener(l3);

        // Creates a listener and registers it with the PrintGradStudentNames button
        GradStudentListener l4 = new GradStudentListener();
        printGradStudentNames.addActionListener(l4);

        // Creates a listener and registers it with the calcBalance button
        CalcBalanceListener l5 = new CalcBalanceListener();
        calcBalance.addActionListener(l5);
    }

    // Class to handle the submit button
    class SubmitListener implements ActionListener {
        public void actionPerformed(ActionEvent a) {
            Student[] students = new Student[50];
            int arrayLocation = 0;

            Student student1 = new Student(name.getText(), address.getText(),
                    balance.getText(), major.getText());
            // Checks remaining array space
            if (arrayLocation < 50) {
                students[arrayLocation] = student1;
                ++arrayLocation;
            }
            // Echos back entered text while storing the previous text
            echoStudent.setText(echoStudent.getText() + "\n"
                    + student1.toString());
        }
    }

    // Class to handle the radio buttons
    class JRBListener implements ActionListener {
        public void actionPerformed(ActionEvent b) {
            if (b.getSource() == jrbStudent) {
                m1.addStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent
                        .setText("Created Student: \n" + m1.getLastStudent());
            }

            if (jrbGraduate.isSelected()) {
                m1.addGradStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent.setText("Created Graduate Student: \n"
                        + m1.getLastGradStudent());
            }
        }
    }
    // Class to handle the "Print Student's Names" button
    class StudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent c) {

            echoStudent.setText(m1.students[counter1].name);

        }

    }
    // Class to handle the "Print Graduate Student's Names" button
    class GradStudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent d) {

            echoStudent.setText(m1.gradStudents[counter2].name);

        }

    }
    // Class to handle the "Calculate Average Balance of All Students" button
    class CalcBalanceListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            echoStudent.setText(getAverageBalance());
        }
    }
    // Class to handle the "Displays Computer Science Major Students" button
    class CompSciMajorListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent f) {

        }
    }

    public static void main(String[] args) {
        GUI frame = new GUI();
        frame.setTitle("Information Interface");
        frame.setSize(1200, 900);
        frame.setLocationRelativeTo(null); // Center the frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

}
公共类管理器{
公立学生[]学生=新生[50];
公共int计数器1=0;
公立研究生[]研究生=新研究生[50];
公共int计数器2=0;
公共经理(){
}
public void addStudent(字符串名称、字符串地址、字符串余额、字符串专业){
学生1=新学生(姓名、地址、余额、专业);
学生[1]=学生1;
计数器1++;
}
公共字符串getLastStudent(){
return“学生添加:“+学生[counter1-1]+”\n”;
}
public void addGradStudent(字符串名称、字符串地址、字符串余额、字符串专业){
研究生2=新研究生(姓名、地址、余额、专业);
研究生[2]=学生2;
计数器2++;
}
公共字符串getLastGradStudent(){
return“研究生添加:“+研究生[counter2-1]+”\n”;
}
公共字符串getAverageBalance(){
双和=0;
对于(int i=0;i
GUI类

public class Student {
    protected String name;
    protected String address;
    protected double balance;
    protected String major;

    // Constructs fields
    public Student(String name, String address, String balance, String major) {
        this.name = name;
        this.address = address;
        this.major = major;
        try {
            this.balance = Double.parseDouble(balance);
        }
        catch(NumberFormatException e) {
            this.balance = 0;
        }
    }

    public String setName(String name) {
        return name;
    }

    public String setAddress(String address) {
        return address;
    }

    public double setBalance(double balance) {
        return balance;
    }

    public String setMajor(String major) {
        return major;

    }

    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class GradStudent extends Student {

    public GradStudent(String name, String address, String balance, String major) {
        super(name, address, balance, major);
    }



    public String toString() {
        return ("Name: " + this.name + " Address: " + this.address
                + " Balance: " + this.balance + " Major: " + this.major);
    }
}
public class Manager {
    public Student[] students = new Student[50];
    public int counter1 = 0;

    public GradStudent[] gradStudents = new GradStudent[50];
    public int counter2 = 0;

    public Manager() {

    }

    public void addStudent(String name, String address, String balance, String major) {
        Student student1 = new Student(name, address, balance, major);
        students[counter1] = student1;
                counter1++;
    }
    public String getLastStudent() {
        return "Student added: " + students[counter1-1] +"\n";
    }

    public void addGradStudent(String name, String address, String balance, String major) {
        GradStudent student2 = new GradStudent(name, address, balance, major);
        gradStudents[counter2] = student2;
                counter2++;
    }
    public String getLastGradStudent() {
        return "Graduate Student added: " + gradStudents[counter2-1] +"\n";
    }

    public String getAverageBalance(){
        double sum = 0;
        for (int i = 0; i < counter1; i++) {
            sum += students[i].setBalance(counter1);
        }

        for(int i = 0; i < counter2; i++) {
            sum+= students[i].setBalance(counter2);
        }

        double average = sum / (counter1+counter2);
        return average+"";
        }

}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;

public class GUI extends JFrame {
    private JRadioButton jrbStudent = new JRadioButton("Student");
    private JRadioButton jrbGraduate = new JRadioButton("Graduate");
    private JTextField name = new JTextField(20);
    private JTextField address = new JTextField(20);
    private JTextField balance = new JTextField(20);
    private JTextField major = new JTextField(20);
    private JButton jbtSubmit = new JButton("Submit");
    private JTextArea echoStudent = new JTextArea();

    private JButton printStudentNames = new JButton("Print Student's Names");
    private JButton printGradStudentNames = new JButton(
            "Print Graduate Student's Names");
    private JButton calcBalance = new JButton(
            "Calculate Average Balance of All Students");
    private JButton compSciMajor = new JButton(
            "Displays Computer Science Major Students");

    private Manager m1 = new Manager();

    public GUI() {

        // Creates panel P1 and adds the components
        JPanel p1 = new JPanel(new GridLayout(9, 1, 10, 10));
        p1.add(new JLabel("Name: "));
        p1.add(name);
        p1.add(new JLabel("Address: "));
        p1.add(address);
        p1.add(new JLabel("Balance: "));
        p1.add(balance);
        p1.add(new JLabel("Major: "));
        p1.add(major);
        p1.add(jrbStudent);
        p1.add(jrbGraduate);
        p1.add(new JLabel("Submit Button: "));
        p1.add(jbtSubmit);
        p1.add(printStudentNames);
        p1.add(printGradStudentNames);
        p1.add(calcBalance);
        p1.add(compSciMajor);
        p1.add(new JLabel("Submitted Text: "));

        // Creates a radio-button group to group both buttons
        ButtonGroup group = new ButtonGroup();
        group.add(jrbStudent);
        group.add(jrbGraduate);

        // Adds the panel and text area to the frame
        add(p1);
        p1.add(echoStudent);
        echoStudent.setEditable(false);

        // Creates a listener and registers it with the submit button
        SubmitListener l1 = new SubmitListener();
        jbtSubmit.addActionListener(l1);

        // Creates a listener and registers it with the radio buttons
        JRBListener l2 = new JRBListener();
        jrbStudent.addActionListener(l2);
        jrbGraduate.addActionListener(l2);

        // Creates a listener and registers it with the PrintStudentNames button
        StudentListener l3 = new StudentListener();
        printStudentNames.addActionListener(l3);

        // Creates a listener and registers it with the PrintGradStudentNames button
        GradStudentListener l4 = new GradStudentListener();
        printGradStudentNames.addActionListener(l4);

        // Creates a listener and registers it with the calcBalance button
        CalcBalanceListener l5 = new CalcBalanceListener();
        calcBalance.addActionListener(l5);
    }

    // Class to handle the submit button
    class SubmitListener implements ActionListener {
        public void actionPerformed(ActionEvent a) {
            Student[] students = new Student[50];
            int arrayLocation = 0;

            Student student1 = new Student(name.getText(), address.getText(),
                    balance.getText(), major.getText());
            // Checks remaining array space
            if (arrayLocation < 50) {
                students[arrayLocation] = student1;
                ++arrayLocation;
            }
            // Echos back entered text while storing the previous text
            echoStudent.setText(echoStudent.getText() + "\n"
                    + student1.toString());
        }
    }

    // Class to handle the radio buttons
    class JRBListener implements ActionListener {
        public void actionPerformed(ActionEvent b) {
            if (b.getSource() == jrbStudent) {
                m1.addStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent
                        .setText("Created Student: \n" + m1.getLastStudent());
            }

            if (jrbGraduate.isSelected()) {
                m1.addGradStudent(name.getText(), address.getText(),
                        balance.getText(), major.getText());
                echoStudent.setText("Created Graduate Student: \n"
                        + m1.getLastGradStudent());
            }
        }
    }
    // Class to handle the "Print Student's Names" button
    class StudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent c) {

            echoStudent.setText(m1.students[counter1].name);

        }

    }
    // Class to handle the "Print Graduate Student's Names" button
    class GradStudentListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent d) {

            echoStudent.setText(m1.gradStudents[counter2].name);

        }

    }
    // Class to handle the "Calculate Average Balance of All Students" button
    class CalcBalanceListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            echoStudent.setText(getAverageBalance());
        }
    }
    // Class to handle the "Displays Computer Science Major Students" button
    class CompSciMajorListener extends Manager implements ActionListener {
        public void actionPerformed(ActionEvent f) {

        }
    }

    public static void main(String[] args) {
        GUI frame = new GUI();
        frame.setTitle("Information Interface");
        frame.setSize(1200, 900);
        frame.setLocationRelativeTo(null); // Center the frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

}
导入java.awt.GridLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JTextArea;
导入javax.swing.JTextField;
导入javax.swing.JRadioButton;
导入javax.swing.ButtonGroup;
公共类GUI扩展JFrame{
私人JRadioButton jrbStudent=新JRadioButton(“学生”);
私人JRadioButton jrbGraduate=新JRadioButton(“毕业生”);
私有JTextField name=新JTextField(20);
私有JTextField地址=新JTextField(20);
私人JTextField余额=新JTextField(20);
专用JTextField major=新JTextField(20);
私有JButton jbtSubmit=新JButton(“提交”);
私有JTextArea echoStudent=新JTextArea();
私有JButton printStudentNames=新JButton(“打印学生姓名”);
私有JButton printGradStudentNames=新JButton(
“打印研究生姓名”);
私有JButton calcBalance=新JButton(
“计算所有学生的平均余额”);
私有JButton compSciMajor=新JButton(
“显示计算机科学专业学生”);
私人经理m1=新经理();
公共图形用户界面(){
//创建面板P1并添加零部件
JPanel p1=新的JPanel(新的网格布局(9,1,10,10));
p1.添加(新的JLabel(“名称”);
p1.添加(名称);
p1.添加(新的JLabel(“地址”);
p1.添加(地址);
p1.增加(新的JLabel(“余额:”);
p1.增加(余额);
p1.增加(新的JLabel(“少校”);
p1.增加(主要);
p1.添加(jrbStudent);
p1.添加(JRBGRADUDE);
p1.添加(新JLabel(“提交按钮”);
p1.添加(jbtSubmit);
p1.添加(打印学生姓名);
p1.添加(打印学生姓名);
p1.添加(calcBalance);
p1.增加(专业);
p1.添加(新JLabel(“提交文本:”);
//创建单选按钮组以对两个按钮进行分组
ButtonGroup=新建ButtonGroup();
添加组(jrbStudent);
添加组(JRBGRADUDE);
//将面板和文本区域添加到框架中
添加(p1);
p1.增加(学生);
echoStudent.setEditable(false);
//创建一个侦听器并使用submit按钮注册它
SubmitListener l1=新的SubmitListener();
jbtSubmit.addActionListener(l1);
//创建侦听器并使用单选按钮注册它
JRBListener l2=新的JRBListener();
jrbStudent.addActionListener(l2);
jrbGraduate.addActionListener(l2);
//创建侦听器并使用PrintStudentNames按钮注册它
StudentListener l3=新建StudentListener();
printStudentNames.addActionListener(l3);
//创建侦听器并使用PrintGradStudentNames按钮注册它
GradStudentListener l4=新的GradStudentListener();
printGradStudentNames.addActionListener(l4);
//创建侦听器并使用calcBalance按钮注册它
CalcBalanceListener l5=新的CalcBalanceListener();
calcBalance.addActionListener(l5);
}
//类来处理提交按钮
类SubmitListener实现ActionListener{
已执行的公共无效操作(操作事件a){
学生[]学生=新生[50];
int-arrayLocation=0;
Student student1=新学生(名称.getText(),地址.getText(),
balance.getText(),major.getText());
//检查剩余的数组空间
如果(阵列位置<50){
学生[排列位置]=学生1;
++排列定位;
}