import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;

public class gradebook {

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(
                UIManager.getCrossPlatformLookAndFeelClassName());
        } catch (Exception e) { }

//Create the top-level container for adding a Class
        final JFrame cl_add = make_cl_add_frame();

//Create the top-level container for editing a Class
        final JFrame cl_edit = make_cl_edit_frame();

//Create the top-level container for adding an Assignment
        final JFrame as_add = make_as_add_frame();

//Create the top-level container for editing an Assignment
        final JFrame as_edit = make_as_edit_frame();

//Create the top-level container for adding a Student
        final JFrame st_add = make_st_add_frame();

//Create the top-level container for editing a Student
        final JFrame st_edit = make_st_edit_frame();

//Create the top-level container
        final JFrame gradebook = make_gb_frame(cl_add, cl_edit, as_add, as_edit, st_add, st_edit);

//Show the gradebook frame
        gradebook.setVisible(true);
    }

//**********************************************************************************
//********************************make_gb_frame*************************************
//**********************************************************************************

    public static JFrame make_gb_frame(final JFrame cl_add, final JFrame cl_edit, final JFrame as_add, final JFrame as_edit, final JFrame st_add, final JFrame st_edit) {

//Create the frame itself
        final JFrame gradebook = new JFrame("Super Gradebook");

//Creating objects for gradebook frame (gradebook)
//Creating the title label that says Super Gradebook
        JLabel gb_title_lbl = new JLabel("Super Gradebook");
        gb_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the title label that says Class
        JLabel gb_cl_title_lbl = new JLabel("Class");
        gb_cl_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the class list box with two default elements.
        DefaultListModel gb_cl_list_lbx_mdl = new DefaultListModel();
        gb_cl_list_lbx_mdl.addElement("Please Make A Selection");
        gb_cl_list_lbx_mdl.addElement("Class 1");
        gb_cl_list_lbx_mdl.addElement("Class 2");
        gb_cl_list_lbx_mdl.addElement("Class 3");
        gb_cl_list_lbx_mdl.addElement("Class 4");
        gb_cl_list_lbx_mdl.addElement("Class 5");
        gb_cl_list_lbx_mdl.addElement("Class 6");
        gb_cl_list_lbx_mdl.addElement("Class 7");
        gb_cl_list_lbx_mdl.addElement("Class 8");
        gb_cl_list_lbx_mdl.addElement("Class 9");
        gb_cl_list_lbx_mdl.addElement("Class 10");
        gb_cl_list_lbx_mdl.addElement("Class 11");
        gb_cl_list_lbx_mdl.addElement("Class 12");
        final JList gb_cl_list_lbx = new JList(gb_cl_list_lbx_mdl);
        gb_cl_list_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the class list box
        JScrollPane gb_cl_list_lbx_pane = new JScrollPane(gb_cl_list_lbx);
        gb_cl_list_lbx_pane.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the class add button
        JButton gb_cl_add_but = new JButton("Add");

//Creating the class edit button
        JButton gb_cl_edit_but = new JButton("Edit");

//Creating the title label that says Assignments
        JLabel gb_as_title_lbl = new JLabel("Assignments");
        gb_as_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Assignments list box with two default elements.
        DefaultListModel gb_as_list_lbx_mdl = new DefaultListModel();
        gb_as_list_lbx_mdl.addElement("Please Make A Selection");
        gb_as_list_lbx_mdl.addElement("Assignment 1");
        gb_as_list_lbx_mdl.addElement("Assignment 2");
        gb_as_list_lbx_mdl.addElement("Assignment 3");
        gb_as_list_lbx_mdl.addElement("Assignment 4");
        gb_as_list_lbx_mdl.addElement("Assignment 5");
        gb_as_list_lbx_mdl.addElement("Assignment 6");
        gb_as_list_lbx_mdl.addElement("Assignment 7");
        gb_as_list_lbx_mdl.addElement("Assignment 8");
        gb_as_list_lbx_mdl.addElement("Assignment 9");
        gb_as_list_lbx_mdl.addElement("Assignment 10");
        gb_as_list_lbx_mdl.addElement("Assignment 11");
        gb_as_list_lbx_mdl.addElement("Assignment 12");
        final JList gb_as_list_lbx = new JList(gb_as_list_lbx_mdl);
        gb_as_list_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignments list box
        JScrollPane gb_as_list_lbx_pane = new JScrollPane(gb_as_list_lbx);
        gb_as_list_lbx_pane.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Assignments add button
        JButton gb_as_add_but = new JButton("Add");

//Creating the Assignments edit button
        JButton gb_as_edit_but = new JButton("Edit");

//Creating the title label that says Students
        JLabel gb_st_title_lbl = new JLabel("Students");
        gb_st_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Students list box with two default elements.
        DefaultListModel gb_st_list_lbx_mdl = new DefaultListModel();
        gb_st_list_lbx_mdl.addElement("Please Make A Selection");
        gb_st_list_lbx_mdl.addElement("Student 1");
        gb_st_list_lbx_mdl.addElement("Student 2");
        gb_st_list_lbx_mdl.addElement("Student 3");
        gb_st_list_lbx_mdl.addElement("Student 4");
        gb_st_list_lbx_mdl.addElement("Student 5");
        gb_st_list_lbx_mdl.addElement("Student 6");
        gb_st_list_lbx_mdl.addElement("Student 7");
        gb_st_list_lbx_mdl.addElement("Student 8");
        gb_st_list_lbx_mdl.addElement("Student 9");
        gb_st_list_lbx_mdl.addElement("Student 10");
        gb_st_list_lbx_mdl.addElement("Student 11");
        gb_st_list_lbx_mdl.addElement("Student 12");
        final JList gb_st_list_lbx = new JList(gb_st_list_lbx_mdl);
        gb_st_list_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the students list box
        JScrollPane gb_st_list_lbx_pane = new JScrollPane(gb_st_list_lbx);
        gb_st_list_lbx_pane.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Students add button
        JButton gb_st_add_but = new JButton("Add");

//Creating the Students edit button
        JButton gb_st_edit_but = new JButton("Edit");

//Creating the title label that says Grade
        JLabel gb_gr_title_lbl = new JLabel("Grade");
        gb_gr_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,0));

//Creating the text field for the Grade
        final JTextField gb_gr_txt = new JTextField(5);
        gb_gr_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the grade update button
        JButton gb_gr_but = new JButton("Update");

//Creating the title label that says Data
        final JLabel gb_data_lbl = new JLabel("Overall Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");





//Adding event listeners for gradebook frame objects
        gb_cl_add_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent gb_cl_add_but_click) {
                cl_add.setVisible(true);
            }
        });

        gb_cl_edit_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent gb_cl_edit_but_click) {
                cl_edit.setVisible(true);    
            }
        });

        gb_cl_list_lbx.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent gb_cl_list_lbx_select) {
                 int cl = gb_cl_list_lbx.getSelectedIndex();
                 int as = gb_as_list_lbx.getSelectedIndex();
                 int st = gb_st_list_lbx.getSelectedIndex();
                 if( cl > 0 ) {
                    if( as > 0 ) {
                        if( st > 0 ) {        
                            gb_data_lbl.setText("Make a selection to see the average");
                            gb_gr_txt.setText("90");
                        }
                        else {
                            gb_data_lbl.setText("Class Average on Assignment: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                    else {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Student Average in Class: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                        else {
                            gb_data_lbl.setText("Overall Class Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                }
                else {
                    if( as > 0 ) {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Make a selection to see the average");
                            gb_gr_txt.setText("91");
                        }
                        else {
                            gb_data_lbl.setText("Overall Assignment Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                    else {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Overall Student Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                        else {
                            gb_data_lbl.setText("Overall Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                }
            }
        });

        gb_as_add_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent gb_as_add_but_click) {
                as_add.setVisible(true);
            }
        });

        gb_as_edit_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent gb_as_edit_but_click) {
                as_edit.setVisible(true);
            }
        });

        gb_as_list_lbx.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent gb_as_list_lbx_select) {
                 int cl = gb_cl_list_lbx.getSelectedIndex();
                 int as = gb_as_list_lbx.getSelectedIndex();
                 int st = gb_st_list_lbx.getSelectedIndex();
                 if( cl > 0 ) {
                    if( as > 0 ) {
                        if( st > 0 ) {        
                            gb_data_lbl.setText("Make a selection to see the average");
                            gb_gr_txt.setText("90");
                        }
                        else {
                            gb_data_lbl.setText("Class Average on Assignment: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                    else {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Student Average in Class: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                        else {
                            gb_data_lbl.setText("Overall Class Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                }
                else {
                    if( as > 0 ) {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Make a selection to see the average");
                            gb_gr_txt.setText("91");
                        }
                        else {
                            gb_data_lbl.setText("Overall Assignment Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                    else {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Overall Student Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                        else {
                            gb_data_lbl.setText("Overall Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                }
            }
        });

        gb_st_add_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent gb_st_add_but_click) {
                st_add.setVisible(true);
            }
        });

        gb_st_edit_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent gb_st_edit_but_click) {
                st_edit.setVisible(true);
            }
        });

        gb_st_list_lbx.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent gb_st_list_lbx_select) {
                 int cl = gb_cl_list_lbx.getSelectedIndex();
                 int as = gb_as_list_lbx.getSelectedIndex();
                 int st = gb_st_list_lbx.getSelectedIndex();
                 if( cl > 0 ) {
                    if( as > 0 ) {
                        if( st > 0 ) {        
                            gb_data_lbl.setText("Make a selection to see the average");
                            gb_gr_txt.setText("90");
                        }
                        else {
                            gb_data_lbl.setText("Class Average on Assignment: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                    else {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Student Average in Class: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                        else {
                            gb_data_lbl.setText("Overall Class Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                }
                else {
                    if( as > 0 ) {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Make a selection to see the average");
                            gb_gr_txt.setText("91");
                        }
                        else {
                            gb_data_lbl.setText("Overall Assignment Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                    else {
                        if( st > 0 ) {
                            gb_data_lbl.setText("Overall Student Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                        else {
                            gb_data_lbl.setText("Overall Average: 99    As:5  Bs:5  Cs:5  Ds:5  Fs:5");
                            gb_gr_txt.setText("");
                        }
                    }
                }
            }
        });


/*
* An easy way to put space between a top-level container
* and its contents is to put the contents in a JPanel
* that has an "empty" border.
*/

//Creating the container panel
        JPanel gb_main_pane = new JPanel();
        gb_main_pane.setBorder(BorderFactory.createEmptyBorder(
                                        10, //top
                                        10, //left
                                        10, //bottom
                                        10) //right
                                        );
//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        gb_main_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Creating first content panel
        JPanel gb_top_pane = new JPanel();
        gb_top_pane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

//Setting the layout method
        gb_top_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=0.5;
        gbconstraints.gridwidth=7;
        gblayout.setConstraints(gb_title_lbl, gbconstraints);
        gb_top_pane.add(gb_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(gb_cl_title_lbl, gbconstraints);
        gb_top_pane.add(gb_cl_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.gridwidth=2;
        gbconstraints.gridheight=3;
        gblayout.setConstraints(gb_cl_list_lbx_pane, gbconstraints);
        gb_top_pane.add(gb_cl_list_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=5;
        gbconstraints.gridwidth=1;
        gbconstraints.gridheight=1;
        gblayout.setConstraints(gb_cl_add_but, gbconstraints);
        gb_top_pane.add(gb_cl_add_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_cl_edit_but, gbconstraints);
        gb_top_pane.add(gb_cl_edit_but);

        gbconstraints.gridx=2;
        gbconstraints.gridy=1;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(gb_as_title_lbl, gbconstraints);
        gb_top_pane.add(gb_as_title_lbl);

        gbconstraints.gridx=2;
        gbconstraints.gridy=2;
        gbconstraints.gridwidth=2;
        gbconstraints.gridheight=3;
        gblayout.setConstraints(gb_as_list_lbx_pane, gbconstraints);
        gb_top_pane.add(gb_as_list_lbx_pane);

        gbconstraints.gridx=2;
        gbconstraints.gridy=5;
        gbconstraints.gridwidth=1;
        gbconstraints.gridheight=1;
        gblayout.setConstraints(gb_as_add_but, gbconstraints);
        gb_top_pane.add(gb_as_add_but);

        gbconstraints.gridx=3;
        gbconstraints.gridy=5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_as_edit_but, gbconstraints);
        gb_top_pane.add(gb_as_edit_but);

        gbconstraints.gridx=4;
        gbconstraints.gridy=1;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(gb_st_title_lbl, gbconstraints);
        gb_top_pane.add(gb_st_title_lbl);

        gbconstraints.gridx=4;
        gbconstraints.gridy=2;
        gbconstraints.gridwidth=2;
        gbconstraints.gridheight=3;
        gblayout.setConstraints(gb_st_list_lbx_pane, gbconstraints);
        gb_top_pane.add(gb_st_list_lbx_pane);

        gbconstraints.gridx=4;
        gbconstraints.gridy=5;
        gbconstraints.gridwidth=1;
        gbconstraints.gridheight=1;
        gblayout.setConstraints(gb_st_add_but, gbconstraints);
        gb_top_pane.add(gb_st_add_but);

        gbconstraints.gridx=5;
        gbconstraints.gridy=5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_st_edit_but, gbconstraints);
        gb_top_pane.add(gb_st_edit_but);

        gbconstraints.gridx=6;
        gbconstraints.gridy=1;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_gr_title_lbl, gbconstraints);
        gb_top_pane.add(gb_gr_title_lbl);

        gbconstraints.gridx=6;
        gbconstraints.gridy=2;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_gr_txt, gbconstraints);
        gb_top_pane.add(gb_gr_txt);

        gbconstraints.gridx=6;
        gbconstraints.gridy=3;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_gr_but, gbconstraints);
        gb_top_pane.add(gb_gr_but);

//Creating second content panel
        JPanel gb_bot_pane = new JPanel();
        gb_bot_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        gb_bot_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.gridwidth=6;
        gblayout.setConstraints(gb_data_lbl, gbconstraints);
        gb_bot_pane.add(gb_data_lbl);

//Putting the content panels into the container panel
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_top_pane, gbconstraints);
        gb_main_pane.add(gb_top_pane);

	gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(gb_bot_pane, gbconstraints);
        gb_main_pane.add(gb_bot_pane);


//Finish setting up gradebook frame, and show it.
        gradebook.setContentPane(gb_main_pane);
        gradebook.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
                }
        });
        gradebook.pack();
        return gradebook;
    }



//**********************************************************************************
//********************************make_cl_add_frame*********************************
//**********************************************************************************

    public static JFrame make_cl_add_frame() {

//Create the frame itself
        final JFrame cl_add = new JFrame("Add a Class");

//Creating objects for add a class frame (cl_add)
//Creating the title label that says Add a Class
        final JLabel cl_add_title_lbl = new JLabel("Add a Class");
        cl_add_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the name label
        JLabel cl_add_name_lbl = new JLabel("Name:");
        cl_add_name_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the name textbox
        final JTextField cl_add_name_txt = new JTextField(20);
        cl_add_name_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the department label
        JLabel cl_add_department_lbl = new JLabel("Department:");
        cl_add_department_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the department textbox
        final JTextField cl_add_department_txt = new JTextField(20);
        cl_add_department_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the studentlist label
        JLabel cl_add_studentlist_lbl = new JLabel("Students:");
        cl_add_studentlist_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Students list box with six default elements.
        DefaultListModel cl_add_studentlist_lbx_mdl = new DefaultListModel();
        cl_add_studentlist_lbx_mdl.addElement("Please Make A Selection");
        cl_add_studentlist_lbx_mdl.addElement("Student 1");
        cl_add_studentlist_lbx_mdl.addElement("Student 2");
        cl_add_studentlist_lbx_mdl.addElement("Student 3");
        cl_add_studentlist_lbx_mdl.addElement("Student 4");
        cl_add_studentlist_lbx_mdl.addElement("Student 5");
        cl_add_studentlist_lbx_mdl.addElement("Student 6");
        cl_add_studentlist_lbx_mdl.addElement("Student 7");
        cl_add_studentlist_lbx_mdl.addElement("Student 8");
        cl_add_studentlist_lbx_mdl.addElement("Student 9");
        cl_add_studentlist_lbx_mdl.addElement("Student 10");
        cl_add_studentlist_lbx_mdl.addElement("Student 11");
        cl_add_studentlist_lbx_mdl.addElement("Student 12");
        final JList cl_add_studentlist_lbx = new JList(cl_add_studentlist_lbx_mdl);
        cl_add_studentlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the student list box
        JScrollPane cl_add_studentlist_lbx_pane = new JScrollPane(cl_add_studentlist_lbx);
        cl_add_studentlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,0));

//Creating the assignmentlist label
        JLabel cl_add_assignmentlist_lbl = new JLabel("Assignments:");
        cl_add_assignmentlist_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Assignments list box with six default elements.
        DefaultListModel cl_add_assignmentlist_lbx_mdl = new DefaultListModel();
        cl_add_assignmentlist_lbx_mdl.addElement("Please Make A Selection");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 1");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 2");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 3");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 4");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 5");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 6");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 7");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 8");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 9");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 10");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 11");
        cl_add_assignmentlist_lbx_mdl.addElement("Assignment 12");
        final JList cl_add_assignmentlist_lbx = new JList(cl_add_assignmentlist_lbx_mdl);
        cl_add_assignmentlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignment list box
        JScrollPane cl_add_assignmentlist_lbx_pane = new JScrollPane(cl_add_assignmentlist_lbx);
        cl_add_assignmentlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,0));

//Creating the add button
        JButton cl_add_add_but = new JButton("Add");

//Creating the cancel button
        JButton cl_add_cancel_but = new JButton("Cancel");



//Adding event listeners for cl_add frame objects
        cl_add_add_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent cl_add_add_but_click) {
                JOptionPane.showMessageDialog(cl_add, cl_add_name_txt.getText() + " has been added");
                cl_add.setVisible(false);
            }
        });

        cl_add_cancel_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent cl_add_cancel_but_click) {
                cl_add.setVisible(false);
            }
        });


//Adding layout for add a class objects
//Creating cl_add_pane content panel
        JPanel cl_add_pane = new JPanel();
        cl_add_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        cl_add_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(cl_add_title_lbl, gbconstraints);
        cl_add_pane.add(cl_add_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_name_lbl, gbconstraints);
        cl_add_pane.add(cl_add_name_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_name_txt, gbconstraints);
        cl_add_pane.add(cl_add_name_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_department_lbl, gbconstraints);
        cl_add_pane.add(cl_add_department_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_department_txt, gbconstraints);
        cl_add_pane.add(cl_add_department_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_studentlist_lbl, gbconstraints);
        cl_add_pane.add(cl_add_studentlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_studentlist_lbx_pane, gbconstraints);
        cl_add_pane.add(cl_add_studentlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_assignmentlist_lbl, gbconstraints);
        cl_add_pane.add(cl_add_assignmentlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_assignmentlist_lbx_pane, gbconstraints);
        cl_add_pane.add(cl_add_assignmentlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_add_but, gbconstraints);
        cl_add_pane.add(cl_add_add_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_add_cancel_but, gbconstraints);
        cl_add_pane.add(cl_add_cancel_but);

//Finish setting up gradebook frame
        cl_add.setContentPane(cl_add_pane);
        cl_add.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                cl_add.setVisible(false);
            }
        });
        cl_add.pack();
        cl_add.setVisible(false);

        return cl_add;
    }

//**********************************************************************************
//********************************make_cl_edit_frame********************************
//**********************************************************************************

    public static JFrame make_cl_edit_frame() {

//Create the frame itself
        final JFrame cl_edit = new JFrame("Edit a Class");

//Creating objects for edit a class frame (cl_edit)
//Creating the title label that says Edit a Class
        final JLabel cl_edit_title_lbl = new JLabel("Edit a Class");
        cl_edit_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the name label
        JLabel cl_edit_name_lbl = new JLabel("Name:");
        cl_edit_name_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the name textbox
        final JTextField cl_edit_name_txt = new JTextField(20);
        cl_edit_name_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the department label
        JLabel cl_edit_department_lbl = new JLabel("Department:");
        cl_edit_department_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the department textbox
        final JTextField cl_edit_department_txt = new JTextField(20);
        cl_edit_department_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the studentlist label
        JLabel cl_edit_studentlist_lbl = new JLabel("Students:");
        cl_edit_studentlist_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Students list box with six default elements.
        DefaultListModel cl_edit_studentlist_lbx_mdl = new DefaultListModel();
        cl_edit_studentlist_lbx_mdl.addElement("Please Make A Selection");
        cl_edit_studentlist_lbx_mdl.addElement("Student 1");
        cl_edit_studentlist_lbx_mdl.addElement("Student 2");
        cl_edit_studentlist_lbx_mdl.addElement("Student 3");
        cl_edit_studentlist_lbx_mdl.addElement("Student 4");
        cl_edit_studentlist_lbx_mdl.addElement("Student 5");
        cl_edit_studentlist_lbx_mdl.addElement("Student 6");
        cl_edit_studentlist_lbx_mdl.addElement("Student 7");
        cl_edit_studentlist_lbx_mdl.addElement("Student 8");
        cl_edit_studentlist_lbx_mdl.addElement("Student 9");
        cl_edit_studentlist_lbx_mdl.addElement("Student 10");
        cl_edit_studentlist_lbx_mdl.addElement("Student 11");
        cl_edit_studentlist_lbx_mdl.addElement("Student 12");
        final JList cl_edit_studentlist_lbx = new JList(cl_edit_studentlist_lbx_mdl);
        cl_edit_studentlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the student list box
        JScrollPane cl_edit_studentlist_lbx_pane = new JScrollPane(cl_edit_studentlist_lbx);
        cl_edit_studentlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,0));

//Creating the assignmentlist label
        JLabel cl_edit_assignmentlist_lbl = new JLabel("Assignments:");
        cl_edit_assignmentlist_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the Assignments list box with six default elements.
        DefaultListModel cl_edit_assignmentlist_lbx_mdl = new DefaultListModel();
        cl_edit_assignmentlist_lbx_mdl.addElement("Please Make A Selection");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 1");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 2");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 3");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 4");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 5");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 6");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 7");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 8");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 9");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 10");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 11");
        cl_edit_assignmentlist_lbx_mdl.addElement("Assignment 12");
        final JList cl_edit_assignmentlist_lbx = new JList(cl_edit_assignmentlist_lbx_mdl);
        cl_edit_assignmentlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignment list box
        JScrollPane cl_edit_assignmentlist_lbx_pane = new JScrollPane(cl_edit_assignmentlist_lbx);
        cl_edit_assignmentlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,0));

//Creating the update button
        JButton cl_edit_update_but = new JButton("Update");

//Creating the cancel button
        JButton cl_edit_cancel_but = new JButton("Cancel");




//Adding event listeners for cl_add frame objects
        cl_edit_update_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent cl_edit_update_but_click) {
                JOptionPane.showMessageDialog(cl_edit, cl_edit_name_txt.getText() + " has been edited");
                cl_edit.setVisible(false);
            }
        });

        cl_edit_cancel_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent cl_add_cancel_but_click) {
                cl_edit.setVisible(false);
            }
        });


//Adding layout for add a class objects
//Creating cl_edit_pane content panel
        JPanel cl_edit_pane = new JPanel();
        cl_edit_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        cl_edit_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(cl_edit_title_lbl, gbconstraints);
        cl_edit_pane.add(cl_edit_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_name_lbl, gbconstraints);
        cl_edit_pane.add(cl_edit_name_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_name_txt, gbconstraints);
        cl_edit_pane.add(cl_edit_name_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_department_lbl, gbconstraints);
        cl_edit_pane.add(cl_edit_department_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_department_txt, gbconstraints);
        cl_edit_pane.add(cl_edit_department_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_studentlist_lbl, gbconstraints);
        cl_edit_pane.add(cl_edit_studentlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_studentlist_lbx_pane, gbconstraints);
        cl_edit_pane.add(cl_edit_studentlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_assignmentlist_lbl, gbconstraints);
        cl_edit_pane.add(cl_edit_assignmentlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_assignmentlist_lbx_pane, gbconstraints);
        cl_edit_pane.add(cl_edit_assignmentlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_update_but, gbconstraints);
        cl_edit_pane.add(cl_edit_update_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(cl_edit_cancel_but, gbconstraints);
        cl_edit_pane.add(cl_edit_cancel_but);

//Finish setting up gradebook frame
        cl_edit.setContentPane(cl_edit_pane);
        cl_edit.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                cl_edit.setVisible(false);
            }
        });
        cl_edit.pack();
        cl_edit.setVisible(false);

        return cl_edit;
    }



//**********************************************************************************
//********************************make_as_add_frame*********************************
//**********************************************************************************

    public static JFrame make_as_add_frame() {

//Create the frame itself
        final JFrame as_add = new JFrame("Add an Assignment");

//Creating objects for add a class frame (as_add)
//Creating the title label that says Add an Assignment
        final JLabel as_add_title_lbl = new JLabel("Add an Assignment");
        as_add_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the name label
        JLabel as_add_name_lbl = new JLabel("Name:");
        as_add_name_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the name textbox
        final JTextField as_add_name_txt = new JTextField(20);
        as_add_name_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the department label
        JLabel as_add_weight_lbl = new JLabel("Weight(%):");
        as_add_weight_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the department textbox
        final JTextField as_add_weight_txt = new JTextField(20);
        as_add_weight_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the classlist label
        JLabel as_add_classlist_lbl = new JLabel("Classes:");
        as_add_classlist_lbl.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,10));

//Creating the Classes list box with six default elements.
        DefaultListModel as_add_classlist_lbx_mdl = new DefaultListModel();
        as_add_classlist_lbx_mdl.addElement("Please Make A Selection");
        as_add_classlist_lbx_mdl.addElement("Class 1");
        as_add_classlist_lbx_mdl.addElement("Class 2");
        as_add_classlist_lbx_mdl.addElement("Class 3");
        as_add_classlist_lbx_mdl.addElement("Class 4");
        as_add_classlist_lbx_mdl.addElement("Class 5");
        as_add_classlist_lbx_mdl.addElement("Class 6");
        as_add_classlist_lbx_mdl.addElement("Class 7");
        as_add_classlist_lbx_mdl.addElement("Class 8");
        as_add_classlist_lbx_mdl.addElement("Class 9");
        as_add_classlist_lbx_mdl.addElement("Class 10");
        as_add_classlist_lbx_mdl.addElement("Class 11");
        as_add_classlist_lbx_mdl.addElement("Class 12");
        final JList as_add_classlist_lbx = new JList(as_add_classlist_lbx_mdl);
        as_add_classlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignment list box
        JScrollPane as_add_classlist_lbx_pane = new JScrollPane(as_add_classlist_lbx);
        as_add_classlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,0));

//Creating the add button
        JButton as_add_add_but = new JButton("Add");

//Creating the cancel button
        JButton as_add_cancel_but = new JButton("Cancel");



//Adding event listeners for as_add frame objects
        as_add_add_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent as_add_add_but_click) {
//THIS NEEDS TO BE FIXED, "" IS NOT RIGHT
                if(as_add_name_txt.getText() != "") {
                    JOptionPane.showMessageDialog(as_add, as_add_name_txt.getText() + " has been added");
                    as_add.setVisible(false);
                } else {
                    JOptionPane.showMessageDialog(as_add, "Please enter a name");
                }

            }
        });

        as_add_cancel_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent as_add_cancel_but_click) {
                as_add.setVisible(false);
            }
        });


//Adding layout for add a class objects
//Creating cl_add_pane content panel
        JPanel as_add_pane = new JPanel();
        as_add_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        as_add_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(as_add_title_lbl, gbconstraints);
        as_add_pane.add(as_add_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_name_lbl, gbconstraints);
        as_add_pane.add(as_add_name_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_name_txt, gbconstraints);
        as_add_pane.add(as_add_name_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_weight_lbl, gbconstraints);
        as_add_pane.add(as_add_weight_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_weight_txt, gbconstraints);
        as_add_pane.add(as_add_weight_txt);


        gbconstraints.gridx=0;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_classlist_lbl, gbconstraints);
        as_add_pane.add(as_add_classlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_classlist_lbx_pane, gbconstraints);
        as_add_pane.add(as_add_classlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_add_but, gbconstraints);
        as_add_pane.add(as_add_add_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_add_cancel_but, gbconstraints);
        as_add_pane.add(as_add_cancel_but);

//Finish setting up gradebook frame
        as_add.setContentPane(as_add_pane);
        as_add.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                as_add.setVisible(false);
            }
        });
        as_add.pack();
        as_add.setVisible(false);

        return as_add;
    }



//**********************************************************************************
//********************************make_as_edit_frame********************************
//**********************************************************************************

    public static JFrame make_as_edit_frame() {

//Create the frame itself
        final JFrame as_edit = new JFrame("Edit an Assignment");

//Creating objects for add a class frame (as_edit)
//Creating the title label that says Edit an Assignment
        final JLabel as_edit_title_lbl = new JLabel("Edit an Assignment");
        as_edit_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the name label
        JLabel as_edit_name_lbl = new JLabel("Name:");
        as_edit_name_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the name textbox
        final JTextField as_edit_name_txt = new JTextField(20);
        as_edit_name_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the department label
        JLabel as_edit_weight_lbl = new JLabel("Weight(%):");
        as_edit_weight_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the department textbox
        final JTextField as_edit_weight_txt = new JTextField(20);
        as_edit_weight_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the classlist label
        JLabel as_edit_classlist_lbl = new JLabel("Classes:");
        as_edit_classlist_lbl.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,10));

//Creating the Classes list box with six default elements.
        DefaultListModel as_edit_classlist_lbx_mdl = new DefaultListModel();
        as_edit_classlist_lbx_mdl.addElement("Please Make A Selection");
        as_edit_classlist_lbx_mdl.addElement("Class 1");
        as_edit_classlist_lbx_mdl.addElement("Class 2");
        as_edit_classlist_lbx_mdl.addElement("Class 3");
        as_edit_classlist_lbx_mdl.addElement("Class 4");
        as_edit_classlist_lbx_mdl.addElement("Class 5");
        as_edit_classlist_lbx_mdl.addElement("Class 6");
        as_edit_classlist_lbx_mdl.addElement("Class 7");
        as_edit_classlist_lbx_mdl.addElement("Class 8");
        as_edit_classlist_lbx_mdl.addElement("Class 9");
        as_edit_classlist_lbx_mdl.addElement("Class 10");
        as_edit_classlist_lbx_mdl.addElement("Class 11");
        as_edit_classlist_lbx_mdl.addElement("Class 12");
        final JList as_edit_classlist_lbx = new JList(as_edit_classlist_lbx_mdl);
        as_edit_classlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignment list box
        JScrollPane as_edit_classlist_lbx_pane = new JScrollPane(as_edit_classlist_lbx);
        as_edit_classlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,0));

//Creating the add button
        JButton as_edit_update_but = new JButton("Update");

//Creating the cancel button
        JButton as_edit_cancel_but = new JButton("Cancel");



//Adding event listeners for as_edit frame objects
        as_edit_update_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent as_edit_update_but_click) {
//THIS NEEDS TO BE FIXED, "" IS NOT RIGHT
                if(as_edit_name_txt.getText() != "") {
                    JOptionPane.showMessageDialog(as_edit, as_edit_name_txt.getText() + " has been edited");
                    as_edit.setVisible(false);
                } else {
                    JOptionPane.showMessageDialog(as_edit, "Please enter a name");
                }

            }
        });

        as_edit_cancel_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent as_edit_cancel_but_click) {
                as_edit.setVisible(false);
            }
        });


//Adding layout for add a class objects
//Creating cl_edit_pane content panel
        JPanel as_edit_pane = new JPanel();
        as_edit_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        as_edit_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(as_edit_title_lbl, gbconstraints);
        as_edit_pane.add(as_edit_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_name_lbl, gbconstraints);
        as_edit_pane.add(as_edit_name_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_name_txt, gbconstraints);
        as_edit_pane.add(as_edit_name_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_weight_lbl, gbconstraints);
        as_edit_pane.add(as_edit_weight_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_weight_txt, gbconstraints);
        as_edit_pane.add(as_edit_weight_txt);


        gbconstraints.gridx=0;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_classlist_lbl, gbconstraints);
        as_edit_pane.add(as_edit_classlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_classlist_lbx_pane, gbconstraints);
        as_edit_pane.add(as_edit_classlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_update_but, gbconstraints);
        as_edit_pane.add(as_edit_update_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(as_edit_cancel_but, gbconstraints);
        as_edit_pane.add(as_edit_cancel_but);

//Finish setting up gradebook frame
        as_edit.setContentPane(as_edit_pane);
        as_edit.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                as_edit.setVisible(false);
            }
        });
        as_edit.pack();
        as_edit.setVisible(false);

        return as_edit;
    }



//**********************************************************************************
//********************************make_st_add_frame*********************************
//**********************************************************************************

    public static JFrame make_st_add_frame() {

//Create the frame itself
        final JFrame st_add = new JFrame("Add a Student");

//Creating objects for add a class frame (st_add)
//Creating the title label that says Add an Assignment
        final JLabel st_add_title_lbl = new JLabel("Add a Student");
        st_add_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the name label
        JLabel st_add_name_lbl = new JLabel("Name:");
        st_add_name_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the name textbox
        final JTextField st_add_name_txt = new JTextField(20);
        st_add_name_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the ssn label
        JLabel st_add_ssn_lbl = new JLabel("Social Security Number:");
        st_add_ssn_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the ssn textbox
        final JTextField st_add_ssn_txt = new JTextField(20);
        st_add_ssn_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the email label
        JLabel st_add_email_lbl = new JLabel("Email Address:");
        st_add_email_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the email textbox
        final JTextField st_add_email_txt = new JTextField(20);
        st_add_email_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the classlist label
        JLabel st_add_classlist_lbl = new JLabel("Classes:");
        st_add_classlist_lbl.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,10));

//Creating the Classes list box with six default elements.
        DefaultListModel st_add_classlist_lbx_mdl = new DefaultListModel();
        st_add_classlist_lbx_mdl.addElement("Please Make A Selection");
        st_add_classlist_lbx_mdl.addElement("Class 1");
        st_add_classlist_lbx_mdl.addElement("Class 2");
        st_add_classlist_lbx_mdl.addElement("Class 3");
        st_add_classlist_lbx_mdl.addElement("Class 4");
        st_add_classlist_lbx_mdl.addElement("Class 5");
        st_add_classlist_lbx_mdl.addElement("Class 6");
        st_add_classlist_lbx_mdl.addElement("Class 7");
        st_add_classlist_lbx_mdl.addElement("Class 8");
        st_add_classlist_lbx_mdl.addElement("Class 9");
        st_add_classlist_lbx_mdl.addElement("Class 10");
        st_add_classlist_lbx_mdl.addElement("Class 11");
        st_add_classlist_lbx_mdl.addElement("Class 12");
        final JList st_add_classlist_lbx = new JList(st_add_classlist_lbx_mdl);
        st_add_classlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignment list box
        JScrollPane st_add_classlist_lbx_pane = new JScrollPane(st_add_classlist_lbx);
        st_add_classlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,0));

//Creating the add button
        JButton st_add_add_but = new JButton("Add");

//Creating the cancel button
        JButton st_add_cancel_but = new JButton("Cancel");



//Adding event listeners for st_add frame objects
        st_add_add_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent st_add_add_but_click) {
//THIS NEEDS TO BE FIXED, "" IS NOT RIGHT
                if(st_add_name_txt.getText() != "") {
                    JOptionPane.showMessageDialog(st_add, st_add_name_txt.getText() + " has been added");
                    st_add.setVisible(false);
                } else {
                    JOptionPane.showMessageDialog(st_add, "Please enter a name");
                }

            }
        });

        st_add_cancel_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent st_add_cancel_but_click) {
                st_add.setVisible(false);
            }
        });


//Adding layout for add a class objects
//Creating cl_add_pane content panel
        JPanel st_add_pane = new JPanel();
        st_add_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        st_add_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(st_add_title_lbl, gbconstraints);
        st_add_pane.add(st_add_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_name_lbl, gbconstraints);
        st_add_pane.add(st_add_name_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_name_txt, gbconstraints);
        st_add_pane.add(st_add_name_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_ssn_lbl, gbconstraints);
        st_add_pane.add(st_add_ssn_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_ssn_txt, gbconstraints);
        st_add_pane.add(st_add_ssn_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_email_lbl, gbconstraints);
        st_add_pane.add(st_add_email_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_email_txt, gbconstraints);
        st_add_pane.add(st_add_email_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_classlist_lbl, gbconstraints);
        st_add_pane.add(st_add_classlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_classlist_lbx_pane, gbconstraints);
        st_add_pane.add(st_add_classlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_add_but, gbconstraints);
        st_add_pane.add(st_add_add_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_add_cancel_but, gbconstraints);
        st_add_pane.add(st_add_cancel_but);

//Finish setting up gradebook frame
        st_add.setContentPane(st_add_pane);
        st_add.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                st_add.setVisible(false);
            }
        });
        st_add.pack();
        st_add.setVisible(false);

        return st_add;
    }


//**********************************************************************************
//********************************make_st_edit_frame********************************
//**********************************************************************************

    public static JFrame make_st_edit_frame() {

//Create the frame itself
        final JFrame st_edit = new JFrame("Edit a Student");

//Creating objects for add a class frame (st_edit)
//Creating the title label that says Add an Assignment
        final JLabel st_edit_title_lbl = new JLabel("Edit a Student");
        st_edit_title_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,20 ,0));

//Creating the name label
        JLabel st_edit_name_lbl = new JLabel("Name:");
        st_edit_name_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the name textbox
        final JTextField st_edit_name_txt = new JTextField(20);
        st_edit_name_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the ssn label
        JLabel st_edit_ssn_lbl = new JLabel("Social Security Number:");
        st_edit_ssn_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the ssn textbox
        final JTextField st_edit_ssn_txt = new JTextField(20);
        st_edit_ssn_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the email label
        JLabel st_edit_email_lbl = new JLabel("Email Address:");
        st_edit_email_lbl.setBorder(BorderFactory.createEmptyBorder(0 ,0 ,10 ,10));

//Creating the email textbox
        final JTextField st_edit_email_txt = new JTextField(20);
        st_edit_email_txt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));

//Creating the classlist label
        JLabel st_edit_classlist_lbl = new JLabel("Classes:");
        st_edit_classlist_lbl.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,10));

//Creating the Classes list box with six default elements.
        DefaultListModel st_edit_classlist_lbx_mdl = new DefaultListModel();
        st_edit_classlist_lbx_mdl.addElement("Please Make A Selection");
        st_edit_classlist_lbx_mdl.addElement("Class 1");
        st_edit_classlist_lbx_mdl.addElement("Class 2");
        st_edit_classlist_lbx_mdl.addElement("Class 3");
        st_edit_classlist_lbx_mdl.addElement("Class 4");
        st_edit_classlist_lbx_mdl.addElement("Class 5");
        st_edit_classlist_lbx_mdl.addElement("Class 6");
        st_edit_classlist_lbx_mdl.addElement("Class 7");
        st_edit_classlist_lbx_mdl.addElement("Class 8");
        st_edit_classlist_lbx_mdl.addElement("Class 9");
        st_edit_classlist_lbx_mdl.addElement("Class 10");
        st_edit_classlist_lbx_mdl.addElement("Class 11");
        st_edit_classlist_lbx_mdl.addElement("Class 12");
        final JList st_edit_classlist_lbx = new JList(st_edit_classlist_lbx_mdl);
        st_edit_classlist_lbx.setVisibleRowCount(6);

//Creating a scroll pane to surround the assignment list box
        JScrollPane st_edit_classlist_lbx_pane = new JScrollPane(st_edit_classlist_lbx);
        st_edit_classlist_lbx_pane.setBorder(BorderFactory.createEmptyBorder(10 ,0 ,10 ,0));

//Creating the add button
        JButton st_edit_update_but = new JButton("Update");

//Creating the cancel button
        JButton st_edit_cancel_but = new JButton("Cancel");



//Adding event listeners for st_edit frame objects
        st_edit_update_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent st_edit_edit_but_click) {
//THIS NEEDS TO BE FIXED, "" IS NOT RIGHT
                if(st_edit_name_txt.getText() != "") {
                    JOptionPane.showMessageDialog(st_edit, st_edit_name_txt.getText() + " has been edited");
                    st_edit.setVisible(false);
                } else {
                    JOptionPane.showMessageDialog(st_edit, "Please enter a name");
                }

            }
        });

        st_edit_cancel_but.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent st_edit_cancel_but_click) {
                st_edit.setVisible(false);
            }
        });


//Adding layout for add a class objects
//Creating cl_edit_pane content panel
        JPanel st_edit_pane = new JPanel();
        st_edit_pane.setBorder(BorderFactory.createEmptyBorder(10 ,10 ,10 ,10));

//Setting the layout method
        GridBagLayout gblayout = new GridBagLayout();
        GridBagConstraints gbconstraints = new GridBagConstraints();
        st_edit_pane.setLayout(gblayout);
        gbconstraints.fill = GridBagConstraints.VERTICAL;

//Adding the components 1 at a time
        gbconstraints.gridx=0;
        gbconstraints.gridy=0;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=2;
        gblayout.setConstraints(st_edit_title_lbl, gbconstraints);
        st_edit_pane.add(st_edit_title_lbl);

        gbconstraints.gridx=0;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_name_lbl, gbconstraints);
        st_edit_pane.add(st_edit_name_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=1;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_name_txt, gbconstraints);
        st_edit_pane.add(st_edit_name_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_ssn_lbl, gbconstraints);
        st_edit_pane.add(st_edit_ssn_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=2;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_ssn_txt, gbconstraints);
        st_edit_pane.add(st_edit_ssn_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_email_lbl, gbconstraints);
        st_edit_pane.add(st_edit_email_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=3;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_email_txt, gbconstraints);
        st_edit_pane.add(st_edit_email_txt);

        gbconstraints.gridx=0;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_classlist_lbl, gbconstraints);
        st_edit_pane.add(st_edit_classlist_lbl);

        gbconstraints.gridx=1;
        gbconstraints.gridy=4;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_classlist_lbx_pane, gbconstraints);
        st_edit_pane.add(st_edit_classlist_lbx_pane);

        gbconstraints.gridx=0;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_update_but, gbconstraints);
        st_edit_pane.add(st_edit_update_but);

        gbconstraints.gridx=1;
        gbconstraints.gridy=5;
        gbconstraints.weightx=.5;
        gbconstraints.gridwidth=1;
        gblayout.setConstraints(st_edit_cancel_but, gbconstraints);
        st_edit_pane.add(st_edit_cancel_but);

//Finish setting up gradebook frame
        st_edit.setContentPane(st_edit_pane);
        st_edit.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                st_edit.setVisible(false);
            }
        });
        st_edit.pack();
        st_edit.setVisible(false);

        return st_edit;
    }






}
