/Users/johnr/Desktop/IA Submissions/IA Final Submission 000307-0029 - Kazuki/Product/TutoringStudent_Kazuki/src/tutoringstudent/EditPage.java
   1 /*
   2  * To change this license header, choose License Headers in Project Properties.
   3  * To change this template file, choose Tools | Templates
   4  * and open the template in the editor.
   5  */
   6 package tutoringstudent;
   7 
   8 import com.sun.rowset.internal.Row;
   9 import java.awt.event.ActionListener;
  10 import java.io.FileInputStream;
  11 import java.io.FileOutputStream;
  12 import java.io.IOException;
  13 import java.io.ObjectOutputStream;
  14 import java.util.ArrayList;
  15 import java.util.Collections;
  16 import java.util.logging.Level;
  17 import java.util.logging.Logger;
  18 import javax.swing.JOptionPane;
  19 import javax.swing.table.DefaultTableModel;
  20 import java.io.BufferedReader;
  21 import java.io.BufferedWriter;
  22 import java.io.File;
  23 import java.io.FileNotFoundException;
  24 import java.io.FileReader;
  25 import java.io.FileWriter;
  26 
  27 /**
  28  *
  29  * @author 17104
  30  */
  31 public class EditPage extends javax.swing.JFrame {
  32 
  33     ArrayList<StudentClass> students = new ArrayList<StudentClass>();
  34     
  35     ArrayList dataArray = new ArrayList();
  36     
  37     StudentClass studentsClass = new StudentClass();
  38 
  39     private int counter = 0;
  40 
  41     
  42     
  43     public EditPage() {
  44         initComponents();
  45 
  46         updatePanel.setVisible(false);
  47         this.setLocationRelativeTo(null);
  48 
  49         mainTable1.setModel(new javax.swing.table.DefaultTableModel(
  50                 new Object[][]{
  51                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null}                    
  52                 },
  53                 new String[]{
  54                     "Full Name", "Nickname", "Nationality", "Gender", "Grade", "Subject", "Start Date", "Recoomended"
  55                 }
  56         ));
  57 
  58         editTable1.setModel(new javax.swing.table.DefaultTableModel(
  59                 new Object[][]{
  60                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null}                   
  61                 },
  62                 new String[]{
  63                     "Full Name", "Nickname", "Nationality", "Gender", "Grade", "Subject", "Start Date", "Recoomended"
  64                 }
  65         ));
  66 
  67         editTable2.setModel(new javax.swing.table.DefaultTableModel(
  68                 new Object[][]{                  
  69                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
  70                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
  71                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
  72                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
  73                     {null, null, null, null, null, null, null, null, null, null, null, null, null, null}                  
  74                 },
  75                 new String[]{
  76                     "Full Name", "Nickname", "Nationality", "Gender", "Grade", "Subject", "Start Date", "Recoomended"
  77                 }
  78         ));
  79         
  80         radioMale.setSelected(true);
  81 
  82     }
  83     
  84     private void SyncTable()
  85     {
  86         // automation
  87         // Button for updating the ediTable1 (Located at Edit Table Panel)
  88         for (int i = 0; i < students.size(); i++) {
  89             editTable1.setValueAt(students.get(i).getfullName(), i, 0);
  90             editTable1.setValueAt(students.get(i).getnickName(), i, 1);
  91             editTable1.setValueAt(students.get(i).getnationality(), i, 2);
  92             editTable1.setValueAt(students.get(i).getgender(), i, 3);
  93             editTable1.setValueAt(students.get(i).getgrade(), i, 4);
  94             editTable1.setValueAt(students.get(i).getsubject(), i, 5);
  95             editTable1.setValueAt(students.get(i).getstartDate(), i, 6);
  96             editTable1.setValueAt(students.get(i).getwhoRecommend(), i, 7);
  97         }
  98         
  99         DefaultTableModel model = (DefaultTableModel) editTable1.getModel();
 100         model.addRow(new Object[]{null, null, null, null, null, null, null, null, null, null, null, null, null, null});
 101     }
 102                                                
 103     /**
 104      * This method is called from within the constructor to initialize the form.
 105      * WARNING: Do NOT modify this code. The content of this method is always
 106      * regenerated by the Form Editor.
 107      */
 108     @SuppressWarnings("unchecked")
 109     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
 110     private void initComponents() {
 111 
 112         genderButtonGroup = new javax.swing.ButtonGroup();
 113         genderButtonGroup2 = new javax.swing.ButtonGroup();
 114         panelSelect = new javax.swing.JTabbedPane();
 115         mainTable = new javax.swing.JPanel();
 116         jScrollPane1 = new javax.swing.JScrollPane();
 117         mainTable1 = new javax.swing.JTable();
 118         totalLabel1 = new javax.swing.JLabel();
 119         labelSortBy = new javax.swing.JLabel();
 120         displayTotalTF1 = new javax.swing.JTextField();
 121         mainTableSort = new javax.swing.JComboBox<>();
 122         editTable = new javax.swing.JPanel();
 123         theMainPage = new javax.swing.JPanel();
 124         jScrollPane21 = new javax.swing.JScrollPane();
 125         editTable1 = new javax.swing.JTable();
 126         searchBoxEdit = new javax.swing.JComboBox<>();
 127         searchTF = new javax.swing.JTextField();
 128         searchButton = new javax.swing.JButton();
 129         jScrollPane22 = new javax.swing.JScrollPane();
 130         editTable2 = new javax.swing.JTable();
 131         sortByLabel = new javax.swing.JLabel();
 132         totalLabel = new javax.swing.JLabel();
 133         displayTotalTF2 = new javax.swing.JTextField();
 134         findByLabel = new javax.swing.JLabel();
 135         sortingBoxEdit = new javax.swing.JComboBox<>();
 136         jSeparator1 = new javax.swing.JSeparator();
 137         updateButton = new javax.swing.JButton();
 138         deleteButton = new javax.swing.JButton();
 139         messageLabel = new javax.swing.JLabel();
 140         addNewStudentTab = new javax.swing.JPanel();
 141         fullNameTF = new javax.swing.JTextField();
 142         addCancelButton = new javax.swing.JButton();
 143         nicknameTF = new javax.swing.JTextField();
 144         gradeBox = new javax.swing.JComboBox<>();
 145         monthBox = new javax.swing.JComboBox<>();
 146         dayBox = new javax.swing.JComboBox<>();
 147         fullnameLabel = new javax.swing.JLabel();
 148         yearBox = new javax.swing.JComboBox<>();
 149         nicknameLabel = new javax.swing.JLabel();
 150         subjectTF = new javax.swing.JTextField();
 151         gradeLabel = new javax.swing.JLabel();
 152         recommendTF = new javax.swing.JTextField();
 153         startDateLabel = new javax.swing.JLabel();
 154         addNewButton = new javax.swing.JButton();
 155         subjectLabel = new javax.swing.JLabel();
 156         recommendLabel = new javax.swing.JLabel();
 157         titleLabel = new javax.swing.JLabel();
 158         genderLabel = new javax.swing.JLabel();
 159         jLabel2 = new javax.swing.JLabel();
 160         nationalityTF = new javax.swing.JTextField();
 161         radioMale = new javax.swing.JRadioButton();
 162         radioFemale = new javax.swing.JRadioButton();
 163         updatePanel = new javax.swing.JPanel();
 164         titleLabel1 = new javax.swing.JLabel();
 165         fullnameLabel1 = new javax.swing.JLabel();
 166         fullNameTF1 = new javax.swing.JTextField();
 167         nicknameLabel1 = new javax.swing.JLabel();
 168         nicknameTF1 = new javax.swing.JTextField();
 169         jLabel3 = new javax.swing.JLabel();
 170         nationalityTF1 = new javax.swing.JTextField();
 171         genderLabel1 = new javax.swing.JLabel();
 172         radioMale1 = new javax.swing.JRadioButton();
 173         radioFemale1 = new javax.swing.JRadioButton();
 174         gradeLabel1 = new javax.swing.JLabel();
 175         gradeBox1 = new javax.swing.JComboBox<>();
 176         startDateLabel1 = new javax.swing.JLabel();
 177         monthBox1 = new javax.swing.JComboBox<>();
 178         dayBox1 = new javax.swing.JComboBox<>();
 179         yearBox1 = new javax.swing.JComboBox<>();
 180         subjectLabel1 = new javax.swing.JLabel();
 181         subjectTF1 = new javax.swing.JTextField();
 182         recommendLabel1 = new javax.swing.JLabel();
 183         recommendTF1 = new javax.swing.JTextField();
 184         updateNewButton = new javax.swing.JButton();
 185         noUpdate = new javax.swing.JButton();
 186         menuBar = new javax.swing.JMenuBar();
 187         fileMenu = new javax.swing.JMenu();
 188         saveData = new javax.swing.JMenuItem();
 189         loadData = new javax.swing.JMenuItem();
 190         exitShortcut = new javax.swing.JMenuItem();
 191         helpMenu = new javax.swing.JMenu();
 192         contentsMenuItem = new javax.swing.JMenuItem();
 193         aboutMenuItem = new javax.swing.JMenuItem();
 194         aboutMenuItem1 = new javax.swing.JMenuItem();
 195 
 196         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 197         setTitle("My list of tutoring student");
 198         getContentPane().setLayout(new java.awt.CardLayout());
 199 
 200         mainTable1.setModel(new javax.swing.table.DefaultTableModel(
 201             new Object [][] {
 202                 {null, null, null, null},
 203                 {null, null, null, null},
 204                 {null, null, null, null},
 205                 {null, null, null, null}
 206             },
 207             new String [] {
 208                 "Title 1", "Title 2", "Title 3", "Title 4"
 209             }
 210         ));
 211         jScrollPane1.setViewportView(mainTable1);
 212 
 213         totalLabel1.setText("Total # Student:");
 214 
 215         labelSortBy.setText("Sort by:");
 216 
 217         displayTotalTF1.setEditable(false);
 218         displayTotalTF1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
 219         displayTotalTF1.setDragEnabled(false);
 220         displayTotalTF1.setFocusable(false);
 221 
 222         mainTableSort.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Alphabet", "Start Date" }));
 223         mainTableSort.addActionListener(new java.awt.event.ActionListener() {
 224             public void actionPerformed(java.awt.event.ActionEvent evt) {
 225                 mainTableSortActionPerformed(evt);
 226             }
 227         });
 228 
 229         javax.swing.GroupLayout mainTableLayout = new javax.swing.GroupLayout(mainTable);
 230         mainTable.setLayout(mainTableLayout);
 231         mainTableLayout.setHorizontalGroup(
 232             mainTableLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 233             .addGroup(mainTableLayout.createSequentialGroup()
 234                 .addContainerGap()
 235                 .addGroup(mainTableLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 236                     .addGroup(mainTableLayout.createSequentialGroup()
 237                         .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 902, Short.MAX_VALUE)
 238                         .addContainerGap())
 239                     .addGroup(mainTableLayout.createSequentialGroup()
 240                         .addComponent(labelSortBy)
 241                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 242                         .addComponent(mainTableSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 243                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 244                         .addComponent(totalLabel1)
 245                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 246                         .addComponent(displayTotalTF1, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
 247                         .addGap(14, 14, 14))))
 248         );
 249         mainTableLayout.setVerticalGroup(
 250             mainTableLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 251             .addGroup(mainTableLayout.createSequentialGroup()
 252                 .addContainerGap()
 253                 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 512, Short.MAX_VALUE)
 254                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 255                 .addGroup(mainTableLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 256                     .addComponent(labelSortBy)
 257                     .addComponent(totalLabel1)
 258                     .addComponent(displayTotalTF1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 259                     .addComponent(mainTableSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 260                 .addGap(12, 12, 12))
 261         );
 262 
 263         panelSelect.addTab("Main Table", mainTable);
 264 
 265         editTable1.setModel(new javax.swing.table.DefaultTableModel(
 266             new Object [][] {
 267                 {null, null, null, null},
 268                 {null, null, null, null},
 269                 {null, null, null, null},
 270                 {null, null, null, null}
 271             },
 272             new String [] {
 273                 "Title 1", "Title 2", "Title 3", "Title 4"
 274             }
 275         ));
 276         jScrollPane21.setViewportView(editTable1);
 277 
 278         searchBoxEdit.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Full Name", "Nickname", "Nationality", "Grade" }));
 279 
 280         searchButton.setText("Search");
 281         searchButton.addMouseListener(new java.awt.event.MouseAdapter() {
 282             public void mouseClicked(java.awt.event.MouseEvent evt) {
 283                 searchButtonMouseClicked(evt);
 284             }
 285         });
 286 
 287         editTable2.setModel(new javax.swing.table.DefaultTableModel(
 288             new Object [][] {
 289                 {null, null, null, null},
 290                 {null, null, null, null},
 291                 {null, null, null, null},
 292                 {null, null, null, null}
 293             },
 294             new String [] {
 295                 "Title 1", "Title 2", "Title 3", "Title 4"
 296             }
 297         ));
 298         jScrollPane22.setViewportView(editTable2);
 299 
 300         sortByLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 301         sortByLabel.setText("Sort by:");
 302 
 303         totalLabel.setText("Total # Student:");
 304 
 305         displayTotalTF2.setEditable(false);
 306         displayTotalTF2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
 307         displayTotalTF2.setDragEnabled(false);
 308         displayTotalTF2.setFocusable(false);
 309 
 310         findByLabel.setText("Find by:");
 311 
 312         sortingBoxEdit.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Alphabet", "Start Date" }));
 313         sortingBoxEdit.addActionListener(new java.awt.event.ActionListener() {
 314             public void actionPerformed(java.awt.event.ActionEvent evt) {
 315                 sortingBoxEditActionPerformed(evt);
 316             }
 317         });
 318 
 319         updateButton.setText("Update");
 320         updateButton.addActionListener(new java.awt.event.ActionListener() {
 321             public void actionPerformed(java.awt.event.ActionEvent evt) {
 322                 updateButtonActionPerformed(evt);
 323             }
 324         });
 325 
 326         deleteButton.setText("Delete");
 327         deleteButton.addActionListener(new java.awt.event.ActionListener() {
 328             public void actionPerformed(java.awt.event.ActionEvent evt) {
 329                 deleteButtonActionPerformed(evt);
 330             }
 331         });
 332 
 333         messageLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 334         messageLabel.setText("Temp Dialog");
 335 
 336         javax.swing.GroupLayout theMainPageLayout = new javax.swing.GroupLayout(theMainPage);
 337         theMainPage.setLayout(theMainPageLayout);
 338         theMainPageLayout.setHorizontalGroup(
 339             theMainPageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 340             .addGroup(theMainPageLayout.createSequentialGroup()
 341                 .addGap(16, 16, 16)
 342                 .addGroup(theMainPageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 343                     .addGroup(theMainPageLayout.createSequentialGroup()
 344                         .addComponent(findByLabel)
 345                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 346                         .addComponent(searchBoxEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
 347                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 348                         .addComponent(searchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE)
 349                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 350                         .addComponent(searchButton)
 351                         .addGap(18, 18, 18)
 352                         .addComponent(messageLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 353                         .addGap(18, 18, 18)
 354                         .addComponent(updateButton)
 355                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 356                         .addComponent(deleteButton)
 357                         .addContainerGap())
 358                     .addGroup(theMainPageLayout.createSequentialGroup()
 359                         .addGroup(theMainPageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 360                             .addComponent(jScrollPane21)
 361                             .addGroup(theMainPageLayout.createSequentialGroup()
 362                                 .addComponent(sortByLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
 363                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 364                                 .addComponent(sortingBoxEdit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 365                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 366                                 .addComponent(totalLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)
 367                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 368                                 .addComponent(displayTotalTF2, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
 369                                 .addGap(15, 15, 15)))
 370                         .addGap(10, 10, 10))
 371                     .addGroup(theMainPageLayout.createSequentialGroup()
 372                         .addComponent(jScrollPane22)
 373                         .addContainerGap())))
 374             .addGroup(theMainPageLayout.createSequentialGroup()
 375                 .addContainerGap()
 376                 .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 896, Short.MAX_VALUE))
 377         );
 378         theMainPageLayout.setVerticalGroup(
 379             theMainPageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 380             .addGroup(theMainPageLayout.createSequentialGroup()
 381                 .addGap(11, 11, 11)
 382                 .addGroup(theMainPageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 383                     .addComponent(sortByLabel)
 384                     .addComponent(totalLabel)
 385                     .addComponent(sortingBoxEdit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 386                     .addComponent(displayTotalTF2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 387                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 388                 .addComponent(jScrollPane21, javax.swing.GroupLayout.DEFAULT_SIZE, 348, Short.MAX_VALUE)
 389                 .addGap(8, 8, 8)
 390                 .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
 391                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 392                 .addGroup(theMainPageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 393                     .addComponent(findByLabel)
 394                     .addComponent(searchBoxEdit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 395                     .addComponent(searchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
 396                     .addComponent(searchButton)
 397                     .addComponent(updateButton)
 398                     .addComponent(deleteButton)
 399                     .addComponent(messageLabel))
 400                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 401                 .addComponent(jScrollPane22, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
 402                 .addGap(7, 7, 7))
 403         );
 404 
 405         javax.swing.GroupLayout editTableLayout = new javax.swing.GroupLayout(editTable);
 406         editTable.setLayout(editTableLayout);
 407         editTableLayout.setHorizontalGroup(
 408             editTableLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 409             .addGroup(editTableLayout.createSequentialGroup()
 410                 .addContainerGap()
 411                 .addComponent(theMainPage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 412                 .addContainerGap())
 413         );
 414         editTableLayout.setVerticalGroup(
 415             editTableLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 416             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, editTableLayout.createSequentialGroup()
 417                 .addGap(0, 0, 0)
 418                 .addComponent(theMainPage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 419         );
 420 
 421         panelSelect.addTab("Edit Table", editTable);
 422 
 423         addCancelButton.setText("Cancel");
 424 
 425         gradeBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Select Grade", "KDG", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9", "G10", "G11", "G12", "Adult" }));
 426 
 427         monthBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "mm", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
 428 
 429         dayBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "dd", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
 430 
 431         fullnameLabel.setText("Student Full Name:");
 432 
 433         yearBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "yyyy", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026", "2027", "2028", "2029", "2030" }));
 434 
 435         nicknameLabel.setText("Student Nickname:");
 436 
 437         gradeLabel.setText("Grade:");
 438 
 439         startDateLabel.setText("Start Date:");
 440 
 441         addNewButton.setText("Add ");
 442         addNewButton.addMouseListener(new java.awt.event.MouseAdapter() {
 443             public void mouseClicked(java.awt.event.MouseEvent evt) {
 444                 addNewButtonMouseClicked(evt);
 445             }
 446         });
 447 
 448         subjectLabel.setText("Subject:");
 449 
 450         recommendLabel.setText("Recommended by:");
 451 
 452         titleLabel.setText("Fill in the basic information of new student");
 453 
 454         genderLabel.setText("Gender:");
 455 
 456         jLabel2.setText("Nationality");
 457 
 458         genderButtonGroup.add(radioMale);
 459         radioMale.setText("Male");
 460 
 461         genderButtonGroup.add(radioFemale);
 462         radioFemale.setText("Female");
 463 
 464         javax.swing.GroupLayout addNewStudentTabLayout = new javax.swing.GroupLayout(addNewStudentTab);
 465         addNewStudentTab.setLayout(addNewStudentTabLayout);
 466         addNewStudentTabLayout.setHorizontalGroup(
 467             addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 468             .addGroup(addNewStudentTabLayout.createSequentialGroup()
 469                 .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 470                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 471                         .addGap(253, 253, 253)
 472                         .addComponent(addNewButton)
 473                         .addGap(72, 72, 72)
 474                         .addComponent(addCancelButton))
 475                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 476                         .addGap(287, 287, 287)
 477                         .addComponent(titleLabel))
 478                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 479                         .addGap(214, 214, 214)
 480                         .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 481                             .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 482                                 .addComponent(nicknameLabel)
 483                                 .addComponent(fullnameLabel))
 484                             .addComponent(recommendLabel)
 485                             .addComponent(jLabel2)
 486                             .addComponent(genderLabel)
 487                             .addComponent(gradeLabel)
 488                             .addComponent(startDateLabel)
 489                             .addComponent(subjectLabel))
 490                         .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 491                             .addGroup(addNewStudentTabLayout.createSequentialGroup()
 492                                 .addGap(52, 52, 52)
 493                                 .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 494                                     .addComponent(fullNameTF, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 495                                     .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 496                                         .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 497                                             .addComponent(nicknameTF, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 498                                             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 499                                                 .addComponent(gradeBox, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 500                                                 .addGroup(addNewStudentTabLayout.createSequentialGroup()
 501                                                     .addComponent(monthBox, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
 502                                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 503                                                     .addComponent(dayBox, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
 504                                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 505                                                     .addComponent(yearBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 506                                                 .addComponent(subjectTF, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 507                                                 .addComponent(recommendTF, javax.swing.GroupLayout.PREFERRED_SIZE, 242, javax.swing.GroupLayout.PREFERRED_SIZE)))
 508                                         .addComponent(nationalityTF, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE))))
 509                             .addGroup(addNewStudentTabLayout.createSequentialGroup()
 510                                 .addGap(100, 100, 100)
 511                                 .addComponent(radioMale)
 512                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 513                                 .addComponent(radioFemale)))))
 514                 .addContainerGap(283, Short.MAX_VALUE))
 515         );
 516 
 517         addNewStudentTabLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {addCancelButton, addNewButton});
 518 
 519         addNewStudentTabLayout.setVerticalGroup(
 520             addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 521             .addGroup(addNewStudentTabLayout.createSequentialGroup()
 522                 .addGap(21, 21, 21)
 523                 .addComponent(titleLabel)
 524                 .addGap(18, 18, 18)
 525                 .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 526                     .addComponent(fullnameLabel)
 527                     .addComponent(fullNameTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 528                 .addGap(26, 26, 26)
 529                 .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 530                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 531                         .addComponent(nicknameLabel)
 532                         .addGap(31, 31, 31)
 533                         .addComponent(jLabel2)
 534                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 535                         .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 536                             .addComponent(genderLabel)
 537                             .addComponent(radioMale)
 538                             .addComponent(radioFemale))
 539                         .addGap(22, 22, 22)
 540                         .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 541                             .addComponent(gradeLabel)
 542                             .addComponent(gradeBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 543                         .addGap(18, 18, 18)
 544                         .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 545                             .addComponent(startDateLabel)
 546                             .addComponent(monthBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 547                             .addComponent(dayBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 548                             .addComponent(yearBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
 549                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 550                         .addComponent(nicknameTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 551                         .addGap(21, 21, 21)
 552                         .addComponent(nationalityTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 553                         .addGap(183, 183, 183)))
 554                 .addGap(31, 31, 31)
 555                 .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 556                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 557                         .addComponent(subjectLabel)
 558                         .addGap(25, 25, 25)
 559                         .addComponent(recommendLabel))
 560                     .addGroup(addNewStudentTabLayout.createSequentialGroup()
 561                         .addComponent(subjectTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 562                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 563                         .addComponent(recommendTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
 564                 .addGap(38, 38, 38)
 565                 .addGroup(addNewStudentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 566                     .addComponent(addNewButton)
 567                     .addComponent(addCancelButton))
 568                 .addGap(27, 27, 27))
 569         );
 570 
 571         addNewStudentTabLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {addCancelButton, addNewButton});
 572 
 573         panelSelect.addTab("Add New Student", addNewStudentTab);
 574 
 575         getContentPane().add(panelSelect, "card2");
 576 
 577         titleLabel1.setText("Update Student's Information");
 578 
 579         fullnameLabel1.setText("Student Full Name:");
 580 
 581         nicknameLabel1.setText("Student Nickname:");
 582 
 583         jLabel3.setText("Nationality");
 584 
 585         genderLabel1.setText("Gender:");
 586 
 587         genderButtonGroup2.add(radioMale1);
 588         radioMale1.setText("Male");
 589 
 590         genderButtonGroup2.add(radioFemale1);
 591         radioFemale1.setText("Female");
 592 
 593         gradeLabel1.setText("Grade:");
 594 
 595         gradeBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Select Grade", "KDG", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9", "G10", "G11", "G12", "Adult" }));
 596 
 597         startDateLabel1.setText("Start Date:");
 598 
 599         monthBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "mm", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }));
 600 
 601         dayBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "dd", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
 602 
 603         yearBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "yyyy", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026", "2027", "2028", "2029", "2030" }));
 604 
 605         subjectLabel1.setText("Subject:");
 606 
 607         recommendLabel1.setText("Recommended by:");
 608 
 609         updateNewButton.setText("Update");
 610         updateNewButton.addActionListener(new java.awt.event.ActionListener() {
 611             public void actionPerformed(java.awt.event.ActionEvent evt) {
 612                 updateNewButtonActionPerformed(evt);
 613             }
 614         });
 615 
 616         noUpdate.setText("Cancel");
 617         noUpdate.addActionListener(new java.awt.event.ActionListener() {
 618             public void actionPerformed(java.awt.event.ActionEvent evt) {
 619                 noUpdateActionPerformed(evt);
 620             }
 621         });
 622 
 623         javax.swing.GroupLayout updatePanelLayout = new javax.swing.GroupLayout(updatePanel);
 624         updatePanel.setLayout(updatePanelLayout);
 625         updatePanelLayout.setHorizontalGroup(
 626             updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 627             .addGroup(updatePanelLayout.createSequentialGroup()
 628                 .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 629                     .addGroup(updatePanelLayout.createSequentialGroup()
 630                         .addGap(214, 214, 214)
 631                         .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 632                             .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 633                                 .addComponent(nicknameLabel1)
 634                                 .addComponent(fullnameLabel1))
 635                             .addComponent(recommendLabel1)
 636                             .addComponent(jLabel3)
 637                             .addComponent(genderLabel1)
 638                             .addComponent(gradeLabel1)
 639                             .addComponent(startDateLabel1)
 640                             .addComponent(subjectLabel1))
 641                         .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 642                             .addGroup(updatePanelLayout.createSequentialGroup()
 643                                 .addGap(52, 52, 52)
 644                                 .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 645                                     .addComponent(fullNameTF1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 646                                     .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 647                                         .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 648                                             .addComponent(nicknameTF1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 649                                             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 650                                                 .addComponent(gradeBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 651                                                 .addGroup(updatePanelLayout.createSequentialGroup()
 652                                                     .addComponent(monthBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
 653                                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 654                                                     .addComponent(dayBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
 655                                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 656                                                     .addComponent(yearBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 657                                                 .addComponent(subjectTF1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 658                                                 .addComponent(recommendTF1, javax.swing.GroupLayout.PREFERRED_SIZE, 242, javax.swing.GroupLayout.PREFERRED_SIZE)))
 659                                         .addComponent(nationalityTF1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE))))
 660                             .addGroup(updatePanelLayout.createSequentialGroup()
 661                                 .addGap(100, 100, 100)
 662                                 .addComponent(radioMale1)
 663                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 664                                 .addComponent(radioFemale1))))
 665                     .addGroup(updatePanelLayout.createSequentialGroup()
 666                         .addGap(319, 319, 319)
 667                         .addComponent(titleLabel1))
 668                     .addGroup(updatePanelLayout.createSequentialGroup()
 669                         .addGap(260, 260, 260)
 670                         .addComponent(updateNewButton, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
 671                         .addGap(18, 18, 18)
 672                         .addComponent(noUpdate)))
 673                 .addContainerGap(304, Short.MAX_VALUE))
 674         );
 675         updatePanelLayout.setVerticalGroup(
 676             updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 677             .addGroup(updatePanelLayout.createSequentialGroup()
 678                 .addGap(21, 21, 21)
 679                 .addComponent(titleLabel1)
 680                 .addGap(18, 18, 18)
 681                 .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 682                     .addComponent(fullnameLabel1)
 683                     .addComponent(fullNameTF1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 684                 .addGap(26, 26, 26)
 685                 .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 686                     .addGroup(updatePanelLayout.createSequentialGroup()
 687                         .addComponent(nicknameLabel1)
 688                         .addGap(31, 31, 31)
 689                         .addComponent(jLabel3)
 690                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 691                         .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 692                             .addComponent(genderLabel1)
 693                             .addComponent(radioMale1)
 694                             .addComponent(radioFemale1))
 695                         .addGap(22, 22, 22)
 696                         .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 697                             .addComponent(gradeLabel1)
 698                             .addComponent(gradeBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 699                         .addGap(18, 18, 18)
 700                         .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 701                             .addComponent(startDateLabel1)
 702                             .addComponent(monthBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 703                             .addComponent(dayBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 704                             .addComponent(yearBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
 705                     .addGroup(updatePanelLayout.createSequentialGroup()
 706                         .addComponent(nicknameTF1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 707                         .addGap(21, 21, 21)
 708                         .addComponent(nationalityTF1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 709                         .addGap(183, 183, 183)))
 710                 .addGap(31, 31, 31)
 711                 .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 712                     .addGroup(updatePanelLayout.createSequentialGroup()
 713                         .addComponent(subjectLabel1)
 714                         .addGap(25, 25, 25)
 715                         .addComponent(recommendLabel1))
 716                     .addGroup(updatePanelLayout.createSequentialGroup()
 717                         .addComponent(subjectTF1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 718                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 719                         .addComponent(recommendTF1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
 720                 .addGap(35, 35, 35)
 721                 .addGroup(updatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 722                     .addComponent(updateNewButton)
 723                     .addComponent(noUpdate))
 724                 .addGap(30, 30, 30))
 725         );
 726 
 727         getContentPane().add(updatePanel, "card3");
 728 
 729         fileMenu.setMnemonic('f');
 730         fileMenu.setText("File");
 731 
 732         saveData.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.META_MASK));
 733         saveData.setMnemonic('o');
 734         saveData.setText("Save Data");
 735         saveData.addActionListener(new java.awt.event.ActionListener() {
 736             public void actionPerformed(java.awt.event.ActionEvent evt) {
 737                 saveDataActionPerformed(evt);
 738             }
 739         });
 740         fileMenu.add(saveData);
 741 
 742         loadData.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.META_MASK));
 743         loadData.setMnemonic('s');
 744         loadData.setText("Load Data");
 745         loadData.addActionListener(new java.awt.event.ActionListener() {
 746             public void actionPerformed(java.awt.event.ActionEvent evt) {
 747                 loadDataActionPerformed(evt);
 748             }
 749         });
 750         fileMenu.add(loadData);
 751 
 752         exitShortcut.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, java.awt.event.InputEvent.META_MASK));
 753         exitShortcut.setMnemonic('x');
 754         exitShortcut.setText("Exit");
 755         exitShortcut.addActionListener(new java.awt.event.ActionListener() {
 756             public void actionPerformed(java.awt.event.ActionEvent evt) {
 757                 exitShortcutActionPerformed(evt);
 758             }
 759         });
 760         fileMenu.add(exitShortcut);
 761 
 762         menuBar.add(fileMenu);
 763 
 764         helpMenu.setMnemonic('h');
 765         helpMenu.setText("Help");
 766 
 767         contentsMenuItem.setMnemonic('c');
 768         contentsMenuItem.setText("About Main Table");
 769         helpMenu.add(contentsMenuItem);
 770 
 771         aboutMenuItem.setMnemonic('a');
 772         aboutMenuItem.setText("About Edit Rable");
 773         helpMenu.add(aboutMenuItem);
 774 
 775         aboutMenuItem1.setMnemonic('a');
 776         aboutMenuItem1.setText("About Add New Student");
 777         helpMenu.add(aboutMenuItem1);
 778 
 779         menuBar.add(helpMenu);
 780 
 781         setJMenuBar(menuBar);
 782 
 783         pack();
 784     }// </editor-fold>                        
 785 
 786     private void addNewButtonMouseClicked(java.awt.event.MouseEvent evt) {                                          
 787 
 788         // instead of displaying "true" on a table, allocate gender as "female"
 789         String gender = "Female";
 790         if (radioMale.isSelected()) {
 791             gender = "Male";
 792         }
 793 
 794         // select the selected grade from combo box
 795         String grade = "";
 796         grade = gradeBox.getSelectedItem() + "";
 797 
 798         // display staart date in form of : month / day / year
 799         String startday = (String) dayBox.getSelectedItem();
 800         String startmonth = (String) monthBox.getSelectedItem();
 801         String startyear = (String) yearBox.getSelectedItem();
 802 
 803         String startDate = "" + startmonth + "/" + startday + "/" + startyear;
 804 
 805         // Retrieve input → add to the table
 806         students.add(new StudentClass(fullNameTF.getText(),
 807                                       nicknameTF.getText(), 
 808                                       nationalityTF.getText(),
 809                                       gender, grade, startDate,
 810                                       subjectTF.getText(),
 811                                       recommendTF.getText()));
 812 
 813         counter++;
 814 
 815         // indicate the row
 816         for (int i = 0; i < counter; i++) {
 817             mainTable1.setValueAt(students.get(i).getfullName(), i, 0);
 818             mainTable1.setValueAt(students.get(i).getnickName(), i, 1);
 819             mainTable1.setValueAt(students.get(i).getnationality(), i, 2);
 820             mainTable1.setValueAt(students.get(i).getgender(), i, 3);
 821             mainTable1.setValueAt(students.get(i).getgrade(), i, 4);
 822             mainTable1.setValueAt(students.get(i).getsubject(), i, 5);
 823             mainTable1.setValueAt(students.get(i).getstartDate(), i, 6);
 824             mainTable1.setValueAt(students.get(i).getwhoRecommend(), i, 7);
 825         }    // move to next row
 826 
 827         DefaultTableModel model = (DefaultTableModel) mainTable1.getModel();
 828         model.addRow(new Object[]{null, null, null, null, null, null, null, null, null, null, null, null, null, null});
 829         
 830         //reset the textfield to blank
 831         fullNameTF.setText("");
 832         nicknameTF.setText("");
 833         subjectTF.setText("");
 834         recommendTF.setText("");
 835         nationalityTF.setText("");
 836 
 837         //reset RadioButton and ItemBox
 838         gradeBox.setSelectedIndex(0);
 839         monthBox.setSelectedIndex(0);
 840         dayBox.setSelectedIndex(0);
 841         yearBox.setSelectedIndex(0);
 842         
 843 
 844         // update the number of students
 845         int numberOfStudent = counter;
 846         displayTotalTF1.setText(Integer.toString(numberOfStudent));
 847         displayTotalTF2.setText(Integer.toString(numberOfStudent));
 848         
 849         radioMale.setSelected(true);
 850         
 851        
 852         // sync mainTable1 and editTable1
 853         SyncTable();
 854         
 855     }                                         
 856 
 857     private void searchButtonMouseClicked(java.awt.event.MouseEvent evt) {                                          
 858 
 859         String boxItem2 = (String) searchBoxEdit.getSelectedItem();
 860 
 861         
 862         // Search by full name when box displays "Full Name"
 863         if (boxItem2.equals("Full Name"))
 864         {
 865             SortAndSearch s = new SortAndSearch();
 866             int result = s.searchByFullName(students, searchTF.getText());
 867 
 868             if (result == -1) {
 869                 JOptionPane.showMessageDialog(null, "No results found");
 870             } else {
 871                 int secondCounter = 0;
 872                 for (int i = 0; i < students.size(); i++) {
 873 
 874                     if (students.get(i).getfullName().equals(searchTF.getText())) {
 875                         editTable2.setValueAt(students.get(i).getfullName(), secondCounter, 0);
 876                         editTable2.setValueAt(students.get(i).getnickName(), secondCounter, 1);
 877                         editTable2.setValueAt(students.get(i).getnationality(), secondCounter, 2);
 878                         editTable2.setValueAt(students.get(i).getgender(), secondCounter, 3);
 879                         editTable2.setValueAt(students.get(i).getgrade(), secondCounter, 4);
 880                         editTable2.setValueAt(students.get(i).getsubject(), secondCounter, 5);
 881                         editTable2.setValueAt(students.get(i).getstartDate(), secondCounter, 6);
 882                         editTable2.setValueAt(students.get(i).getwhoRecommend(), secondCounter, 7);
 883                         secondCounter++;
 884                     }
 885                 }
 886             }
 887         }
 888 
 889         // Search by nickname when box displays "Nickname"
 890         if (boxItem2.equals("Nickname")) // if selected item in combo box is search by : Full Name
 891         {
 892             SortAndSearch s = new SortAndSearch();
 893             int result = s.searchByNickName(students, searchTF.getText());
 894 
 895             if (result == -1) {
 896                 JOptionPane.showMessageDialog(null, "No results found");
 897             } else {
 898                 int secondCounter = 0;
 899                 for (int i = 0; i < students.size(); i++) {
 900 
 901                     if (students.get(i).getnickName().equals(searchTF.getText())) {
 902                         editTable2.setValueAt(students.get(i).getfullName(), secondCounter, 0);
 903                         editTable2.setValueAt(students.get(i).getnickName(), secondCounter, 1);
 904                         editTable2.setValueAt(students.get(i).getnationality(), secondCounter, 2);
 905                         editTable2.setValueAt(students.get(i).getgender(), secondCounter, 3);
 906                         editTable2.setValueAt(students.get(i).getgrade(), secondCounter, 4);
 907                         editTable2.setValueAt(students.get(i).getsubject(), secondCounter, 5);
 908                         editTable2.setValueAt(students.get(i).getstartDate(), secondCounter, 6);
 909                         editTable2.setValueAt(students.get(i).getwhoRecommend(), secondCounter, 7);
 910                         secondCounter++;
 911                     }
 912                 }
 913             }
 914             {
 915             }
 916         }
 917 
 918         // Search by Nationality when box displays "Nationality"
 919         if (boxItem2.equals("Natinoality")) // if selected item in combo box is search by : Full Name
 920         {
 921             SortAndSearch s = new SortAndSearch();
 922             int result = s.searchByNationality(students, searchTF.getText());
 923 
 924             if (result == -1) {
 925                 JOptionPane.showMessageDialog(null, "No results found");
 926             } else {
 927                 int secondCounter = 0;
 928                 for (int i = 0; i < students.size(); i++) {
 929 
 930                     if (students.get(i).getnickName().equals(searchTF.getText())) {
 931                         editTable2.setValueAt(students.get(i).getfullName(), secondCounter, 0);
 932                         editTable2.setValueAt(students.get(i).getnickName(), secondCounter, 1);
 933                         editTable2.setValueAt(students.get(i).getnationality(), secondCounter, 2);
 934                         editTable2.setValueAt(students.get(i).getgender(), secondCounter, 3);
 935                         editTable2.setValueAt(students.get(i).getgrade(), secondCounter, 4);
 936                         editTable2.setValueAt(students.get(i).getsubject(), secondCounter, 5);
 937                         editTable2.setValueAt(students.get(i).getstartDate(), secondCounter, 6);
 938                         editTable2.setValueAt(students.get(i).getwhoRecommend(), secondCounter, 7);
 939                         secondCounter++;
 940                     }
 941                 }
 942             }
 943         }
 944 
 945         // Search by Grade when box displays "Grade"
 946         if (boxItem2.equals("Grade")) // if selected item in combo box is search by : Full Name
 947         {
 948             SortAndSearch s = new SortAndSearch();
 949             int result = s.searchByGrade(students, searchTF.getText());
 950 
 951             if (result == -1) {
 952                 JOptionPane.showMessageDialog(null, "No results found");
 953             } else {
 954                 int secondCounter = 0;
 955                 for (int i = 0; i < students.size(); i++) {
 956 
 957                     if (students.get(i).getnickName().equals(searchTF.getText())) {
 958                         editTable2.setValueAt(students.get(i).getfullName(), secondCounter, 0);
 959                         editTable2.setValueAt(students.get(i).getnickName(), secondCounter, 1);
 960                         editTable2.setValueAt(students.get(i).getnationality(), secondCounter, 2);
 961                         editTable2.setValueAt(students.get(i).getgender(), secondCounter, 3);
 962                         editTable2.setValueAt(students.get(i).getgrade(), secondCounter, 4);
 963                         editTable2.setValueAt(students.get(i).getsubject(), secondCounter, 5);
 964                         editTable2.setValueAt(students.get(i).getstartDate(), secondCounter, 6);
 965                         editTable2.setValueAt(students.get(i).getwhoRecommend(), secondCounter, 7);
 966                         secondCounter++;
 967                     }
 968                 }
 969             }
 970         }
 971 
 972     }                                         
 973 
 974     private void saveDataActionPerformed(java.awt.event.ActionEvent evt) {                                         
 975    
 976         // 
 977 //        String filePath = "C:\\Users\\omar\\Desktop\\myfolder\\txtfile.txt";
 978 //        File file = new File(filePath);
 979 //        try {
 980 //            try (FileWriter fw = new FileWriter(file); BufferedWriter bw = new BufferedWriter(fw)) {
 981 //                
 982 //                for(int i = 0; i < mainTable1.getRowCount(); i++){//rows
 983 //                    for(int j = 0; j < mainTable1.getColumnCount(); j++){//columns
 984 //                        bw.write(mainTable1.getValueAt(i, j).toString()+" ");
 985 //                    }
 986 //                    bw.newLine();
 987 //                }
 988 //
 989 //            }
 990 //            
 991 //        } catch (IOException ex) {
 992 //            Logger.getLogger(StudentClass.class.getName()).log(Level.SEVERE, null, ex);
 993 //        }
 994      
 995     }                                        
 996 
 997     private void loadDataActionPerformed(java.awt.event.ActionEvent evt) {                                         
 998         
 999 //        DefaultTableModel md = (DefaultTableModel) mainTable1.getModel();
1000 //            int rowCount = md.getRowCount();
1001 //            for (int i = rowCount - 1 ; i >= 0 ; i--)
1002 //            {
1003 //                md.removeRow(i);
1004 //            }
1005 //  
1006 //        String filePath = "C:\\Users\\omar\\Desktop\\myfolder\\txtfile.txt";
1007 //        File file = new File(filePath);
1008 //        
1009 //        try {
1010 //            FileReader fr = new FileReader(file);
1011 //            BufferedReader br = new BufferedReader(fr);
1012 //            
1013 //            DefaultTableModel model = (DefaultTableModel)mainTable1.getModel();
1014 //            DefaultTableModel model2 = (DefaultTableModel)editTable1.getModel();
1015 //            Object[] lines = br.lines().toArray();
1016 //            
1017 //            for(int i = 0; i <= lines.length; i++){
1018 //                String[] row = lines[i].toString().split(" ");
1019 //                model.addRow(row);
1020 //                model2.addRow(row);
1021 //
1022 //            }
1023 //        } 
1024 //        
1025 //        catch (FileNotFoundException ex) 
1026 //        {
1027 //            Logger.getLogger(StudentClass.class.getName()).log(Level.SEVERE, null, ex);
1028 //        } 
1029         
1030     }                                        
1031 
1032     private void exitShortcutActionPerformed(java.awt.event.ActionEvent evt) {                                             
1033        // Close application
1034         System.exit(0);
1035     }                                            
1036 
1037     private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
1038         // Delete selected student's information from the list
1039         
1040         DefaultTableModel md = (DefaultTableModel) editTable2.getModel();       
1041         
1042         int i = editTable2.getSelectedRow();
1043         if ( i >= 0)
1044         {           
1045             md.removeRow(i);
1046         }
1047         else
1048         {
1049             messageLabel.setText("No deleted information");
1050         }
1051         
1052         
1053     }                                            
1054 
1055     private void updateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
1056         // Show update page + hide edit page      
1057         updatePanel.setVisible(true);
1058         panelSelect.setVisible(false);
1059         
1060         // Display current student's information
1061         DefaultTableModel model = (DefaultTableModel)editTable2.getModel();
1062         int i = editTable2.getSelectedRow();
1063         
1064         fullNameTF1.setText(model.getValueAt(i, 0).toString());
1065         nicknameTF1.setText(model.getValueAt(i, 1).toString());
1066         nationalityTF1.setText(model.getValueAt(i, 2).toString());
1067 
1068         if (radioMale.isSelected()) {
1069             radioMale1.setSelected(true);
1070         }
1071         else
1072         {
1073             radioFemale1.setSelected(true);
1074         }
1075         
1076         // get first two letter from the mm/dd/yyyy
1077         String s = editTable2.getValueAt(i, 6).toString();
1078         String upToCharacterMonth = "";
1079         String upToCharacterDay = "";
1080         String upToCharacterYear = "";
1081         upToCharacterMonth = s.substring(1, Math.min(s.length(), 2)); // mm
1082         upToCharacterDay = s.substring(3, Math.min(s.length(), 5)); // dd
1083         upToCharacterYear = s.substring(6, Math.min(s.length(), 10)); // yyyy
1084         
1085         gradeBox1.setSelectedItem(model.getValueAt(i, 4));
1086         monthBox1.setSelectedItem(""+upToCharacterMonth);
1087         dayBox1.setSelectedItem(""+upToCharacterDay);
1088         yearBox1.setSelectedItem(""+upToCharacterYear);
1089         
1090         subjectTF1.setText(model.getValueAt(i, 5).toString());
1091         recommendTF1.setText(model.getValueAt(i, 7).toString());
1092                 
1093     }                                            
1094 
1095     private void updateNewButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
1096         // Update the selected row
1097 
1098         DefaultTableModel model2 = (DefaultTableModel)editTable1.getModel();
1099         DefaultTableModel model3 = (DefaultTableModel)mainTable1.getModel();
1100         int i = editTable2.getSelectedRow();
1101         
1102         // whatever clicked in editTable2 also clicks the same element on editTable1 and mainTable
1103         
1104             
1105             
1106         
1107         
1108         String gender = "Female";
1109         if (radioMale1.isSelected()) {
1110             gender = "Male";
1111         }
1112 
1113         // select the selected grade from combo box
1114         String grade = "";
1115         grade = gradeBox1.getSelectedItem() + "";
1116 
1117         // display staart date in form of : month / day / year
1118         String startday = (String) dayBox1.getSelectedItem();
1119         String startmonth = (String) monthBox1.getSelectedItem();
1120         String startyear = (String) yearBox1.getSelectedItem();
1121 
1122         String startDate = "" + startmonth + "/" + startday + "/" + startyear;
1123 
1124         // indicate the row
1125         if ( i <= 0 ) 
1126         {
1127             editTable2.setValueAt(fullNameTF1.getText(), i, 0);
1128             editTable2.setValueAt(nicknameTF1.getText(), i, 1);
1129             editTable2.setValueAt(nationalityTF1.getText(), i, 2);
1130             editTable2.setValueAt(""+gender, i, 3);
1131             editTable2.setValueAt(""+grade, i, 4);
1132             editTable2.setValueAt(subjectTF1.getText(), i, 5);
1133             editTable2.setValueAt(""+startDate, i, 6);
1134             editTable2.setValueAt(recommendTF1.getText(), i, 7);
1135     
1136         }
1137         updatePanel.setVisible(false);
1138         panelSelect.setVisible(true);
1139     }                                               
1140 
1141     private void noUpdateActionPerformed(java.awt.event.ActionEvent evt) {                                         
1142         // show edit page + hide update page
1143         updatePanel.setVisible(false);
1144         panelSelect.setVisible(true);
1145     }                                        
1146 
1147     private void mainTableSortActionPerformed(java.awt.event.ActionEvent evt) {                                              
1148         // Button for sorting : store what is displaying inside of the box as a boxItem
1149         String boxItem = (String) mainTableSort.getSelectedItem();
1150 
1151         // When inside of the box is " Alphabet "
1152         if (boxItem.equals("Alphabet")) // if selected item in combo box is search by : Full Name
1153         {        
1154             SortAndSearch s = new SortAndSearch();
1155             s.selectionSortOfStudentName(students); // change row to the i / maybe row is better
1156 
1157             if (students.size() <= mainTable1.getRowCount()) {
1158                 for (int i = 0; i < students.size(); i++) {
1159                     mainTable1.setValueAt(students.get(i).getfullName(), i, 0);
1160                     mainTable1.setValueAt(students.get(i).getnickName(), i, 1);
1161                     mainTable1.setValueAt(students.get(i).getnationality(), i, 2);
1162                     mainTable1.setValueAt(students.get(i).getgender(), i, 3);
1163                     mainTable1.setValueAt(students.get(i).getgrade(), i, 4);
1164                     mainTable1.setValueAt(students.get(i).getsubject(), i, 5);
1165                     mainTable1.setValueAt(students.get(i).getstartDate(), i, 6);
1166                     mainTable1.setValueAt(students.get(i).getwhoRecommend(), i, 7);
1167                 }// search the editTable1 and then display on table2
1168             }
1169         }
1170     }                                             
1171 
1172     private void sortingBoxEditActionPerformed(java.awt.event.ActionEvent evt) {                                               
1173         // Button for sorting : store what is displaying inside of the box as a boxItem
1174         String boxItem = (String) sortingBoxEdit.getSelectedItem();
1175 
1176         // When inside of the box is " Alphabet "
1177         if (boxItem.equals("Alphabet")) // if selected item in combo box is search by : Full Name
1178         {        
1179             SortAndSearch s = new SortAndSearch();
1180             s.selectionSortOfStudentName(students); // change row to the i / maybe row is better
1181 
1182             if (students.size() <= editTable1.getRowCount()) {
1183                 for (int i = 0; i < students.size(); i++) {
1184                     editTable1.setValueAt(students.get(i).getfullName(), i, 0);
1185                     editTable1.setValueAt(students.get(i).getnickName(), i, 1);
1186                     editTable1.setValueAt(students.get(i).getnationality(), i, 2);
1187                     editTable1.setValueAt(students.get(i).getgender(), i, 3);
1188                     editTable1.setValueAt(students.get(i).getgrade(), i, 4);
1189                     editTable1.setValueAt(students.get(i).getsubject(), i, 5);
1190                     editTable1.setValueAt(students.get(i).getstartDate(), i, 6);
1191                     editTable1.setValueAt(students.get(i).getwhoRecommend(), i, 7);
1192                 }// search the editTable1 and then display on table2
1193 
1194             }
1195         }
1196     }                                              
1197 
1198     
1199     
1200     /**
1201      * @param args the command line arguments
1202      */
1203     public static void main(String args[]) {
1204         /* Set the Nimbus look and feel */
1205         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
1206         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
1207          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
1208          */
1209         try {
1210             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1211                 if ("Nimbus".equals(info.getName())) {
1212                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
1213                     break;
1214                 }
1215             }
1216         } catch (ClassNotFoundException ex) {
1217             java.util.logging.Logger.getLogger(EditPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1218         } catch (InstantiationException ex) {
1219             java.util.logging.Logger.getLogger(EditPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1220         } catch (IllegalAccessException ex) {
1221             java.util.logging.Logger.getLogger(EditPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1222         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1223             java.util.logging.Logger.getLogger(EditPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1224         }
1225         //</editor-fold>
1226 
1227         /* Create and display the form */
1228         java.awt.EventQueue.invokeLater(new Runnable() {
1229             public void run() {
1230                 new EditPage().setVisible(true);
1231             }
1232         });
1233     }
1234 
1235     // Variables declaration - do not modify                     
1236     private javax.swing.JMenuItem aboutMenuItem;
1237     private javax.swing.JMenuItem aboutMenuItem1;
1238     private javax.swing.JButton addCancelButton;
1239     private javax.swing.JButton addNewButton;
1240     private javax.swing.JPanel addNewStudentTab;
1241     private javax.swing.JMenuItem contentsMenuItem;
1242     private javax.swing.JComboBox<String> dayBox;
1243     private javax.swing.JComboBox<String> dayBox1;
1244     private javax.swing.JButton deleteButton;
1245     private javax.swing.JTextField displayTotalTF1;
1246     private javax.swing.JTextField displayTotalTF2;
1247     private javax.swing.JPanel editTable;
1248     private javax.swing.JTable editTable1;
1249     private javax.swing.JTable editTable2;
1250     private javax.swing.JMenuItem exitShortcut;
1251     private javax.swing.JMenu fileMenu;
1252     private javax.swing.JLabel findByLabel;
1253     private javax.swing.JTextField fullNameTF;
1254     private javax.swing.JTextField fullNameTF1;
1255     private javax.swing.JLabel fullnameLabel;
1256     private javax.swing.JLabel fullnameLabel1;
1257     private javax.swing.ButtonGroup genderButtonGroup;
1258     private javax.swing.ButtonGroup genderButtonGroup2;
1259     private javax.swing.JLabel genderLabel;
1260     private javax.swing.JLabel genderLabel1;
1261     private javax.swing.JComboBox<String> gradeBox;
1262     private javax.swing.JComboBox<String> gradeBox1;
1263     private javax.swing.JLabel gradeLabel;
1264     private javax.swing.JLabel gradeLabel1;
1265     private javax.swing.JMenu helpMenu;
1266     private javax.swing.JLabel jLabel2;
1267     private javax.swing.JLabel jLabel3;
1268     private javax.swing.JScrollPane jScrollPane1;
1269     private javax.swing.JScrollPane jScrollPane21;
1270     private javax.swing.JScrollPane jScrollPane22;
1271     private javax.swing.JSeparator jSeparator1;
1272     private javax.swing.JLabel labelSortBy;
1273     private javax.swing.JMenuItem loadData;
1274     private javax.swing.JPanel mainTable;
1275     private javax.swing.JTable mainTable1;
1276     private javax.swing.JComboBox<String> mainTableSort;
1277     private javax.swing.JMenuBar menuBar;
1278     private javax.swing.JLabel messageLabel;
1279     private javax.swing.JComboBox<String> monthBox;
1280     private javax.swing.JComboBox<String> monthBox1;
1281     private javax.swing.JTextField nationalityTF;
1282     private javax.swing.JTextField nationalityTF1;
1283     private javax.swing.JLabel nicknameLabel;
1284     private javax.swing.JLabel nicknameLabel1;
1285     private javax.swing.JTextField nicknameTF;
1286     private javax.swing.JTextField nicknameTF1;
1287     private javax.swing.JButton noUpdate;
1288     private javax.swing.JTabbedPane panelSelect;
1289     private javax.swing.JRadioButton radioFemale;
1290     private javax.swing.JRadioButton radioFemale1;
1291     private javax.swing.JRadioButton radioMale;
1292     private javax.swing.JRadioButton radioMale1;
1293     private javax.swing.JLabel recommendLabel;
1294     private javax.swing.JLabel recommendLabel1;
1295     private javax.swing.JTextField recommendTF;
1296     private javax.swing.JTextField recommendTF1;
1297     private javax.swing.JMenuItem saveData;
1298     private javax.swing.JComboBox<String> searchBoxEdit;
1299     private javax.swing.JButton searchButton;
1300     private javax.swing.JTextField searchTF;
1301     private javax.swing.JLabel sortByLabel;
1302     private javax.swing.JComboBox<String> sortingBoxEdit;
1303     private javax.swing.JLabel startDateLabel;
1304     private javax.swing.JLabel startDateLabel1;
1305     private javax.swing.JLabel subjectLabel;
1306     private javax.swing.JLabel subjectLabel1;
1307     private javax.swing.JTextField subjectTF;
1308     private javax.swing.JTextField subjectTF1;
1309     private javax.swing.JPanel theMainPage;
1310     private javax.swing.JLabel titleLabel;
1311     private javax.swing.JLabel titleLabel1;
1312     private javax.swing.JLabel totalLabel;
1313     private javax.swing.JLabel totalLabel1;
1314     private javax.swing.JButton updateButton;
1315     private javax.swing.JButton updateNewButton;
1316     private javax.swing.JPanel updatePanel;
1317     private javax.swing.JComboBox<String> yearBox;
1318     private javax.swing.JComboBox<String> yearBox1;
1319     // End of variables declaration                   
1320 
1321     
1322 
1323 }
1324