H:\CSC120\Java\lec22\src\MUFrame.java
  1 /* CSC 120 Lecture # 22
  2  * Blase B. Cindric
  3  *
  4  *
  5  * Project Description:  Rolling Dice Simulation using Random object
  6  * 
  7  */
  8 
  9 import java.awt.*;
 10 import javax.swing.*;
 11 
 12 public class MUFrame extends javax.swing.JFrame {
 13 
 14     
 15     // declare private data here
 16     
 17     private java.util.Random randGen;
 18     
 19     private Integer totalRolls, num2s, num3s, num4s, num5s, num6s, num7s,
 20             num8s, num9s, num10s, num11s, num12s;
 21     
 22     
 23     
 24     
 25     
 26     
 27     // constructor method
 28     public MUFrame() {
 29         initComponents();
 30         
 31         randGen = new java.util.Random();   
 32         
 33         totalRolls = num2s = num3s = num4s = num5s = num6s = num7s
 34                 = num8s = num9s = num10s = num11s = num12s = 0;
 35         
 36         
 37     } // end of constructor
 38     
 39     // declare other methods here
 40     
 41     
 42     
 43     
 44 
 45     /** This method is called from within the constructor to
 46      * initialize the form.
 47      * WARNING: Do NOT modify this code. The content of this method is
 48      * always regenerated by the Form Editor.
 49      */
 50     @SuppressWarnings("unchecked")
 51     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
 52     private void initComponents() {
 53 
 54         drawingPanel = new javax.swing.JPanel();
 55         jLabel1 = new javax.swing.JLabel();
 56         diceRollButton = new javax.swing.JButton();
 57         jScrollPane1 = new javax.swing.JScrollPane();
 58         outputArea = new javax.swing.JTextArea();
 59         jScrollPane2 = new javax.swing.JScrollPane();
 60         totalsArea = new javax.swing.JTextArea();
 61 
 62         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 63 
 64         jLabel1.setFont(new java.awt.Font("Script MT Bold", 1, 36)); // NOI18N
 65         jLabel1.setForeground(new java.awt.Color(255, 0, 51));
 66         jLabel1.setText("Dice Rolling Example Program");
 67 
 68         diceRollButton.setText("Roll the Dice!");
 69         diceRollButton.addActionListener(new java.awt.event.ActionListener() {
 70             public void actionPerformed(java.awt.event.ActionEvent evt) {
 71                 diceRollButtonActionPerformed(evt);
 72             }
 73         });
 74 
 75         outputArea.setColumns(20);
 76         outputArea.setRows(5);
 77         jScrollPane1.setViewportView(outputArea);
 78 
 79         totalsArea.setColumns(20);
 80         totalsArea.setRows(5);
 81         jScrollPane2.setViewportView(totalsArea);
 82 
 83         javax.swing.GroupLayout drawingPanelLayout = new javax.swing.GroupLayout(drawingPanel);
 84         drawingPanel.setLayout(drawingPanelLayout);
 85         drawingPanelLayout.setHorizontalGroup(
 86             drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 87             .addGroup(drawingPanelLayout.createSequentialGroup()
 88                 .addGroup(drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 89                     .addGroup(drawingPanelLayout.createSequentialGroup()
 90                         .addGap(100, 100, 100)
 91                         .addComponent(jLabel1))
 92                     .addGroup(drawingPanelLayout.createSequentialGroup()
 93                         .addGap(48, 48, 48)
 94                         .addComponent(diceRollButton))
 95                     .addGroup(drawingPanelLayout.createSequentialGroup()
 96                         .addGap(23, 23, 23)
 97                         .addGroup(drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 98                             .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 671, Short.MAX_VALUE)
 99                             .addComponent(jScrollPane2))))
100                 .addContainerGap(425, Short.MAX_VALUE))
101         );
102         drawingPanelLayout.setVerticalGroup(
103             drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
104             .addGroup(drawingPanelLayout.createSequentialGroup()
105                 .addContainerGap()
106                 .addComponent(jLabel1)
107                 .addGap(30, 30, 30)
108                 .addComponent(diceRollButton)
109                 .addGap(26, 26, 26)
110                 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE)
111                 .addGap(18, 18, 18)
112                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE)
113                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
114         );
115 
116         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
117         getContentPane().setLayout(layout);
118         layout.setHorizontalGroup(
119             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
120             .addComponent(drawingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
121         );
122         layout.setVerticalGroup(
123             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
124             .addGroup(layout.createSequentialGroup()
125                 .addContainerGap()
126                 .addComponent(drawingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
127                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
128         );
129 
130         pack();
131     }// </editor-fold>                        
132 
133     private void diceRollButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
134         Integer dieRoll, dieRoll2, thisRoll;
135         
136         dieRoll = randGen.nextInt(6) + 1;
137         dieRoll2 = randGen.nextInt(6) + 1;
138         thisRoll = dieRoll + dieRoll2;
139         
140         outputArea.append("just rolled a " + thisRoll + "\n");
141         
142         totalRolls++;
143         
144         if (thisRoll == 2) {
145             num2s++;
146         }
147         else if (thisRoll == 3) {
148             num3s++;
149         }
150         else if (thisRoll == 4) {
151             num4s++;
152         }
153         else if (thisRoll == 5) {
154             num5s++;
155         }
156         else if (thisRoll == 6) {
157             num6s++;
158         }
159         else if (thisRoll == 7) {
160             num7s++;
161         }
162         else if (thisRoll == 8) {
163             num8s++;
164         }
165         else if (thisRoll == 9) {
166             num9s++;
167         }
168         else if (thisRoll == 10) {
169             num10s++;
170         }
171         else if (thisRoll == 11) {
172             num11s++;
173         }
174         else {
175             num12s++;
176         }
177         
178         totalsArea.setText("Totals for " + totalRolls + " dice rolls:\n\n");
179         totalsArea.append("   2s = " + num2s + "  (" + (100.0*num2s / totalRolls) + "%)\n");
180         totalsArea.append("   3s = " + num3s + "  (" + (100.0*num3s / totalRolls) + "%)\n");
181         totalsArea.append("   4s = " + num4s + "  (" + (100.0*num4s / totalRolls) + "%)\n");
182         totalsArea.append("   5s = " + num5s + "  (" + (100.0*num5s / totalRolls) + "%)\n");
183         totalsArea.append("   6s = " + num6s + "  (" + (100.0*num6s / totalRolls) + "%)\n");
184         totalsArea.append("   7s = " + num7s + "  (" + (100.0*num7s / totalRolls) + "%)\n");
185         totalsArea.append("   8s = " + num8s + "  (" + (100.0*num8s / totalRolls) + "%)\n");
186         totalsArea.append("   9s = " + num9s + "  (" + (100.0*num9s / totalRolls) + "%)\n");
187         totalsArea.append("  10s = " + num10s + "  (" + (100.0*num10s / totalRolls) + "%)\n");
188         totalsArea.append("  11s = " + num11s + "  (" + (100.0*num11s / totalRolls) + "%)\n");
189         totalsArea.append("  12s = " + num12s + "  (" + (100.0*num12s / totalRolls) + "%)\n");
190         
191     }                                              
192 
193     /**
194      * @param args the command line arguments
195      */
196     public static void main(String args[]) {
197         java.awt.EventQueue.invokeLater(new Runnable() {
198 
199             public void run() {
200                 new MUFrame().setVisible(true);
201             }
202         });
203     }
204     // Variables declaration - do not modify                     
205     private javax.swing.JButton diceRollButton;
206     private javax.swing.JPanel drawingPanel;
207     private javax.swing.JLabel jLabel1;
208     private javax.swing.JScrollPane jScrollPane1;
209     private javax.swing.JScrollPane jScrollPane2;
210     private javax.swing.JTextArea outputArea;
211     private javax.swing.JTextArea totalsArea;
212     // End of variables declaration                   
213 }
214