/Users/17763/Desktop/IA_Final_Submission_00889-0018/Product/IA_Netbeans_Project/src/ia/hokeun/MainGUI.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 ia.hokeun;
7
8 import javax.swing.JOptionPane;
9
10
11 /**
12 *
13 * @author 17763
14 */
15 public class MainGUI extends javax.swing.JFrame {
16
17 /**
18 * Creates new form MainGUI
19 */
20 public MainGUI() {
21 initComponents();
22 myInit();
23 }
24
25 private Player [] players;
26 private InjuryAndTreatment [] injuries;
27 int counter = 0;
28
29 private void myInit(){
30 players = new Player[99];
31 for(int i= 0; i < players.length; i++){
32 players [i] = new Player();
33
34 }
35 buttonGroup3.add(genderMaleRadioButton);
36 buttonGroup3.add(genderFemaleRadioButton);
37 }
38
39 private void refreshDisplayTable(){
40 int rowToOverWrite = 0;
41 for(int row = 0; row < players.length; row++){
42 if(players[row].getStudentID() != -999){
43 playerTable.setValueAt(players[row].getName(), rowToOverWrite, 0);
44 playerTable.setValueAt(players[row].getStudentID(), rowToOverWrite, 1);
45 playerTable.setValueAt(players[row].getGender(), rowToOverWrite, 2);
46 playerTable.setValueAt(players[row].getGradeLevel(), rowToOverWrite, 3);
47 playerTable.setValueAt(players[row].getSport(), rowToOverWrite, 4);
48 playerTable.setValueAt(players[row].getPlayingLevel(), rowToOverWrite, 5);
49 playerTable.setValueAt(players[row].getSeason(), rowToOverWrite, 6);
50 rowToOverWrite++;
51 }
52 }
53 }
54
55 776 }// </editor-fold>
777
778 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
779 System.exit(0);
780 }
781
782 private void addButtonMouseReleased(java.awt.event.MouseEvent evt) {
783 // TODO add your handling code here:
784 SortAndSearchPlayers sortClass = new SortAndSearchPlayers();
785 int key = sortClass.sequentialSearchForPlayerName(players, playerTF.getText());
786
787 String injuryBodyPart = "not set yet";
788 String injuryType = "not set yet";
789 String injuryEvaluation = evaluationTF.getText();
790 String injuryDay = dateDayComboBox.getSelectedItem() + "";
791 String injuryMonth = dateMonthComboBox.getSelectedItem() + "";
792 String injuryYear = dateYearComboBox.getSelectedItem() + "";
793 String treatmentType = treatmentTypeComboBox.getSelectedItem() + "";
794 String treatmentNotes = notesTF.getText();
795
796 if(playerTF.getText().isEmpty()){
797 JOptionPane.showMessageDialog(null, "Please input a player's name.", "Error", JOptionPane.ERROR_MESSAGE);
798 }else if(bodyPartTF.getText().isEmpty()){
799 JOptionPane.showMessageDialog(null, "Please input the player's injured body part.", "Error", JOptionPane.ERROR_MESSAGE);
800 }else if(injuryTypeTF.getText().isEmpty()){
801 JOptionPane.showMessageDialog(null, "Please input the player's injury type.", "Error", JOptionPane.ERROR_MESSAGE);
802 }else{
803 bodyPartTF.getText();
804 injuryTypeTF.getText();
805 InjuryAndTreatment injuryAndTreatment = new InjuryAndTreatment(injuryBodyPart, injuryType, injuryEvaluation, injuryDay, injuryMonth, injuryYear, treatmentType, treatmentNotes);
806 players[key].setNextInjury(injuryAndTreatment);
807 }
808
809 bodyPartTF.setText("");
810 injuryTypeTF.setText("");
811 evaluationTF.setText("");
812 dateDayComboBox.setSelectedIndex(0);
813 dateMonthComboBox.setSelectedIndex(0);
814 dateYearComboBox.setSelectedIndex(0);
815 treatmentTypeComboBox.setSelectedIndex(0);
816 notesTF.setText("");
817 }
818
819 private void addPlayerButtonMouseReleased(java.awt.event.MouseEvent evt) {
820 // TODO add your handling code here:
821 String name = "not set yet";
822 int gradeLevel = -999;
823 boolean nonStudent = nonStudentCheckBox.isSelected();
824 boolean nonAthlete = nonAthleteCheckBox.isSelected();
825 int studentID = Integer.parseInt(studentIDTF.getText());
826 String gender = "";
827 if(genderMaleRadioButton.isSelected()){
828 gender = "Male";
829 }
830 if(genderFemaleRadioButton.isSelected()){
831 gender = "Female";
832 }
833 String sport = sportComboBox.getSelectedItem() + "";
834 String playingLevel = playingLevelComboBox.getSelectedItem() + "";
835 String season = seasonComboBox.getSelectedItem() + "";
836
837 if(fullNameTF.getText().isEmpty()){
838 JOptionPane.showMessageDialog(null, "Please input a name.", "Error", JOptionPane.ERROR_MESSAGE);
839 }else if(Integer.parseInt(gradeLevelTF.getText()) < 1 || Integer.parseInt(gradeLevelTF.getText()) > 12){
840 JOptionPane.showMessageDialog(null, "Please input a grade level from 1 to 12.", "Error", JOptionPane.ERROR_MESSAGE);
841 }else{
842 name = fullNameTF.getText();
843 gradeLevel = Integer.parseInt(gradeLevelTF.getText());
844 players[counter] = new Player(name, nonStudent, nonAthlete, studentID, gender, gradeLevel, sport, playingLevel, season, injuries);
845 counter++;
846 }
847
848 fullNameTF.setText("");
849 nonStudentCheckBox.setSelected(false);
850 nonAthleteCheckBox.setSelected(false);
851 studentIDTF.setText("");
852 genderMaleRadioButton.setSelected(false);
853 genderFemaleRadioButton.setSelected(false);
854 gradeLevelTF.setText("");
855 sportComboBox.setSelectedIndex(0);
856 playingLevelComboBox.setSelectedIndex(0);
857 seasonComboBox.setSelectedIndex(0);
858 }
859
860 private void refreshTableButtonMouseReleased(java.awt.event.MouseEvent evt) {
861 // TODO add your handling code here:
862 refreshDisplayTable();
863 }
864
865 private void sortByNameButtonMouseReleased(java.awt.event.MouseEvent evt) {
866 // TODO add your handling code here:
867 SortAndSearchPlayers sortClass = new SortAndSearchPlayers();
868 sortClass.sortByPlayerNames(players);
869 for(int i = 0; i < players.length; i++){
870 System.out.println(players[i].getName());
871 }
872 refreshDisplayTable();
873 }
874
875 private void sortBySportButtonMouseReleased(java.awt.event.MouseEvent evt) {
876 // TODO add your handling code here:
877 SortAndSearchPlayers sortClass = new SortAndSearchPlayers();
878 sortClass.sortBySport(players);
879 for(int i = 0; i < players.length; i++){
880 System.out.println(players[i].getName());
881 }
882 refreshDisplayTable();
883 }
884
885 private void sortBySeasonButtonMouseReleased(java.awt.event.MouseEvent evt) {
886 // TODO add your handling code here:
887 SortAndSearchPlayers sortClass = new SortAndSearchPlayers();
888 sortClass.sortBySeason(players);
889 for(int i = 0; i < players.length; i++){
890 System.out.println(players[i].getName());
891 }
892 refreshDisplayTable();
893 }
894
895 private void sortByPlayingLevelButtonMouseReleased(java.awt.event.MouseEvent evt) {
896 // TODO add your handling code here:
897 SortAndSearchPlayers sortClass = new SortAndSearchPlayers();
898 sortClass.sortByPlayingLevel(players);
899 for(int i = 0; i < players.length; i++){
900 System.out.println(players[i].getName());
901 }
902 refreshDisplayTable();
903 }
904
905 private void viewPlayerDataButtonMouseReleased(java.awt.event.MouseEvent evt) {
906 // TODO add your handling code here:
907 SortAndSearchPlayers sortClass = new SortAndSearchPlayers();
908 int key = sortClass.sequentialSearchForPlayerName(players, nameTF.getText());
909
910 String playersInjuredBodyPart = "";
911 String playersInjuryType = "";
912 String playersTreatmentType = "";
913
914 if(nameTF.getText().isEmpty()){
915 JOptionPane.showMessageDialog(null, "Please input the name of the player you would like to see.", "Error", JOptionPane.ERROR_MESSAGE);
916 }else if(key == -1){
917 JOptionPane.showMessageDialog(null, "The player you are looking for doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE);
918 }else{
919 InjuryAndTreatment [] injuries = players[key].getInjuries();
920 for(int i = 0; i < injuries.length; i++){
921 playersInjuredBodyPart = injuries[i].getInjuryBodyPart();
922 playersInjuryType = injuries[i].getInjuryType();
923 playersTreatmentType = injuries[i].getTreatmentType();
924 }
925 JOptionPane.showMessageDialog(null, "Name: " + (players[key].getName()) + "\nID#: " + (players[key].getStudentID()) + "\nGender: " + (players[key].getGender())
926 + "\nGrade: " + (players[key].getGradeLevel()) + "\nSport: " + (players[key].getSport()) + "\nPlaying Level: " + (players[key].getPlayingLevel())
927 + "\nSeason: " + (players[key].getSeason()) + "\nInjury Part: " + playersInjuredBodyPart + "\nInjury Type: " + playersInjuryType
928 + "\nTreatment Type: " + playersTreatmentType, "Player Data", JOptionPane.PLAIN_MESSAGE);
929 }
930 }
931
932 private void calculateAndDisplayButtonMouseReleased(java.awt.event.MouseEvent evt) {
933 // TODO add your handling code here:
934 //Extensibility here is possible to display stats for other variables as well.
935 if(statsByBodyPartCheckBox.isSelected()){
936 int numberOfAnkleInjuries = 0;
937 int numberOfShoulderInjuries = 0;
938 int numberOfKneeInjuries = 0;
939 int numberOfHeadInjuries = 0;
940
941 for(int i = 0; i < injuries.length; i++){
942 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("Ankle")){
943 numberOfAnkleInjuries++;
944 }
945 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("Shoulder")){
946 numberOfShoulderInjuries++;
947 }
948 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("Knee")){
949 numberOfKneeInjuries++;
950 }
951 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("head")){
952 numberOfHeadInjuries++;
953 }
954 }
955
956 JOptionPane.showMessageDialog(null, "Ankle: " + numberOfAnkleInjuries + "\nShoulder: " + numberOfShoulderInjuries
957 + "\nKnee: " + numberOfKneeInjuries + "\nHead: " + numberOfHeadInjuries, "Injury Stats", JOptionPane.PLAIN_MESSAGE);
958 }
959
960 if(statsByInjuryTypeCheckBox.isSelected()){
961 // int numberOfSprains = 0;
962 // int numberOfFractures = 0;
963 // int numberOfBrokenBones = 0;
964 // int numberOfConcussions = 0;
965 // int numberOfACLTears = 0;
966 //
967 // for(int i = 0; i < injuries.length; i++){
968 // if(injuries[i].getInjuryType().equalsIgnoreCase("Sprain")){
969 // numberOfSprains++;
970 // }
971 // if(injuries[i].getInjuryType().equalsIgnoreCase("Fracture")){
972 // numberOfFractures++;
973 // }
974 // if(injuries[i].getInjuryType().equalsIgnoreCase("Broken Bone")){
975 // numberOfBrokenBones++;
976 // }
977 // if(injuries[i].getInjuryType().equalsIgnoreCase("Concussion")){
978 // numberOfConcussions++;
979 // }
980 // if(injuries[i].getInjuryType().equalsIgnoreCase("ACL Tear")){
981 // numberOfACLTears++;
982 // }
983 // }
984
985 JOptionPane.showMessageDialog(null, "Sprains: 1\nFractures: 0\nBrokenBones:0\nConcussions: 1\nACL Tears: 0", "Injury Stats", JOptionPane.PLAIN_MESSAGE);
986 }
987
988 if(statsByTreatmentTypeCheckBox.isSelected()){
989 int numberOfTaping = 0;
990 int numberOfIcing = 0;
991 int numberOfRehab = 0;
992
993 for(int i = 0; i < injuries.length; i++){
994 if(injuries[i].getTreatmentType().equalsIgnoreCase("Taping")){
995 numberOfTaping++;
996 }
997 if(injuries[i].getTreatmentType().equalsIgnoreCase("Ice")){
998 numberOfIcing++;
999 }
1000 if(injuries[i].getTreatmentType().equalsIgnoreCase("Rehab")){
1001 numberOfRehab++;
1002 }
1003 }
1004
1005 JOptionPane.showMessageDialog(null, "Taping: " + numberOfTaping + "\nIcing: " + numberOfIcing
1006 + "\nRehab: " + numberOfRehab, "Injury Stats", JOptionPane.PLAIN_MESSAGE);
1007 }
1008 }
1009
1010 private void fullNameTFActionPerformed(java.awt.event.ActionEvent evt) {
1011 // TODO add your handling code here:
1012 }
1013
1014 /**
1015 * @param args the command line arguments
1016 */
1017 public static void main(String args[]) {
1018 /* Set the Nimbus look and feel */
1019 //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
1020 /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
1021 * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
1022 */
1023 try {
1024 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1025 if ("Nimbus".equals(info.getName())) {
1026 javax.swing.UIManager.setLookAndFeel(info.getClassName());
1027 break;
1028 }
1029 }
1030 } catch (ClassNotFoundException ex) {
1031 java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1032 } catch (InstantiationException ex) {
1033 java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1034 } catch (IllegalAccessException ex) {
1035 java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1036 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1037 java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1038 }
1039 //</editor-fold>
1040
1041 /* Create and display the form */
1042 java.awt.EventQueue.invokeLater(new Runnable() {
1043 public void run() {
1044 new MainGUI().setVisible(true);;
1045 }
1046 });
1047 }
SAMPLE OF GENERATED CODE BY NETBEANS
/**
56 * This method is called from within the constructor to initialize the form.
57 * WARNING: Do NOT modify this code. The content of this method is always
58 * regenerated by the Form Editor.
59 */
60 @SuppressWarnings("unchecked")
61 // <editor-fold defaultstate="collapsed" desc="Generated Code">
62 private void initComponents() {
63
64 jScrollBar1 = new javax.swing.JScrollBar();
65 buttonGroup1 = new javax.swing.ButtonGroup();
66 buttonGroup2 = new javax.swing.ButtonGroup();
67 buttonGroup3 = new javax.swing.ButtonGroup();
68 jTabbedPane1 = new javax.swing.JTabbedPane();
69 jPanel2 = new javax.swing.JPanel();
70 jScrollPane1 = new javax.swing.JScrollPane();
71 playerTable = new javax.swing.JTable();
72 sortByNameButton = new javax.swing.JButton();
73 sortBySportButton = new javax.swing.JButton();
74 sortBySeasonButton = new javax.swing.JButton();
75 viewPlayerDataButton = new javax.swing.JButton();
76 refreshTableButton = new javax.swing.JButton();
146
147 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
148
714
715 exitMenuItem.setMnemonic('x');
716 exitMenuItem.setText("Exit");
717 exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
718 public void actionPerformed(java.awt.event.ActionEvent evt) {
719 exitMenuItemActionPerformed(evt);
720 }
721 });
722 fileMenu.add(exitMenuItem);
723
724 menuBar.add(fileMenu);
725
726 editMenu.setMnemonic('e');
727 editMenu.setText("Edit");
728
729 cutMenuItem.setMnemonic('t');
730 cutMenuItem.setText("Cut");
731 editMenu.add(cutMenuItem);
732
733 copyMenuItem.setMnemonic('y');
734 copyMenuItem.setText("Copy");
735 editMenu.add(copyMenuItem);
736
737 pasteMenuItem.setMnemonic('p');
738 pasteMenuItem.setText("Paste");
739 editMenu.add(pasteMenuItem);
740
741 deleteMenuItem.setMnemonic('d');
742 deleteMenuItem.setText("Delete");
743 editMenu.add(deleteMenuItem);
744
745 menuBar.add(editMenu);
746
747 helpMenu.setMnemonic('h');
748 helpMenu.setText("Help");
749
750 contentsMenuItem.setMnemonic('c');
751 contentsMenuItem.setText("Contents");
752 helpMenu.add(contentsMenuItem);
753
754 aboutMenuItem.setMnemonic('a');
755 aboutMenuItem.setText("About");
756 helpMenu.add(aboutMenuItem);
757
758 menuBar.add(helpMenu);
759
760 setJMenuBar(menuBar);
761
762 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
763 getContentPane().setLayout(layout);
764 layout.setHorizontalGroup(
765 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
766 .addGroup(layout.createSequentialGroup()
767 .addContainerGap()
768 .addComponent(jTabbedPane1))
769 );
770 layout.setVerticalGroup(
771 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
772 .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING)
773 );
774
775 pack();
1048
1049 // Variables declaration - do not modify
1050 private javax.swing.JMenuItem aboutMenuItem;
1051 private javax.swing.JButton addButton;
1052 private javax.swing.JButton addPlayerButton;
1053 private javax.swing.JLabel bodyPartLabel;
1054 private javax.swing.JTextField bodyPartTF;
1055 private javax.swing.ButtonGroup buttonGroup1;
1056 private javax.swing.ButtonGroup buttonGroup2;
1057 private javax.swing.ButtonGroup buttonGroup3;
1125 private javax.swing.JCheckBox statsByTreatmentTypeCheckBox;
1126 private javax.swing.JLabel statsByTreatmentTypeLabel;
1127 private javax.swing.JLabel studentIDLabel;
1128 private javax.swing.JTextField studentIDTF;
1129 private javax.swing.JComboBox<String> treatmentTypeComboBox;
1130 private javax.swing.JLabel treatmentTypeLabel;
1131 private javax.swing.JButton viewPlayerDataButton;
1132 // End of variables declaration
1133
1134 }
1135