/Users/johnr/Desktop/IA Submissions/IA Final Submission 000307-0029 - Kazuki/Product/TutoringStudent_Kazuki/src/tutoringstudent/EditPage.java |
1
2
3
4
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
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
87
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
106
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
789 String gender = "Female";
790 if (radioMale.isSelected()) {
791 gender = "Male";
792 }
793
794
795 String grade = "";
796 grade = gradeBox.getSelectedItem() + "";
797
798
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
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
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 }
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
831 fullNameTF.setText("");
832 nicknameTF.setText("");
833 subjectTF.setText("");
834 recommendTF.setText("");
835 nationalityTF.setText("");
836
837
838 gradeBox.setSelectedIndex(0);
839 monthBox.setSelectedIndex(0);
840 dayBox.setSelectedIndex(0);
841 yearBox.setSelectedIndex(0);
842
843
844
845 int numberOfStudent = counter;
846 displayTotalTF1.setText(Integer.toString(numberOfStudent));
847 displayTotalTF2.setText(Integer.toString(numberOfStudent));
848
849 radioMale.setSelected(true);
850
851
852
853 SyncTable();
854
855 }
856
857 private void searchButtonMouseClicked(java.awt.event.MouseEvent evt) {
858
859 String boxItem2 = (String) searchBoxEdit.getSelectedItem();
860
861
862
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
890 if (boxItem2.equals("Nickname"))
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
919 if (boxItem2.equals("Natinoality"))
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
946 if (boxItem2.equals("Grade"))
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
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995 }
996
997 private void loadDataActionPerformed(java.awt.event.ActionEvent evt) {
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030 }
1031
1032 private void exitShortcutActionPerformed(java.awt.event.ActionEvent evt) {
1033
1034 System.exit(0);
1035 }
1036
1037 private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
1038
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
1057 updatePanel.setVisible(true);
1058 panelSelect.setVisible(false);
1059
1060
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
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));
1082 upToCharacterDay = s.substring(3, Math.min(s.length(), 5));
1083 upToCharacterYear = s.substring(6, Math.min(s.length(), 10));
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
1097
1098 DefaultTableModel model2 = (DefaultTableModel)editTable1.getModel();
1099 DefaultTableModel model3 = (DefaultTableModel)mainTable1.getModel();
1100 int i = editTable2.getSelectedRow();
1101
1102
1103
1104
1105
1106
1107
1108 String gender = "Female";
1109 if (radioMale1.isSelected()) {
1110 gender = "Male";
1111 }
1112
1113
1114 String grade = "";
1115 grade = gradeBox1.getSelectedItem() + "";
1116
1117
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
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
1143 updatePanel.setVisible(false);
1144 panelSelect.setVisible(true);
1145 }
1146
1147 private void mainTableSortActionPerformed(java.awt.event.ActionEvent evt) {
1148
1149 String boxItem = (String) mainTableSort.getSelectedItem();
1150
1151
1152 if (boxItem.equals("Alphabet"))
1153 {
1154 SortAndSearch s = new SortAndSearch();
1155 s.selectionSortOfStudentName(students);
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 }
1168 }
1169 }
1170 }
1171
1172 private void sortingBoxEditActionPerformed(java.awt.event.ActionEvent evt) {
1173
1174 String boxItem = (String) sortingBoxEdit.getSelectedItem();
1175
1176
1177 if (boxItem.equals("Alphabet"))
1178 {
1179 SortAndSearch s = new SortAndSearch();
1180 s.selectionSortOfStudentName(students);
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 }
1193
1194 }
1195 }
1196 }
1197
1198
1199
1200
1201 @param args
1202
1203 public static void main(String args[]) {
1204
1205
1206
1207
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
1226
1227
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