H:\CSC120\Java\lec22\src\MUFrame.java |
1
2
3
4
5
6
7
8
9 import java.awt.*;
10 import javax.swing.*;
11
12 public class MUFrame extends javax.swing.JFrame {
13
14
15
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
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 }
38
39
40
41
42
43
44
45 This method is called from within the constructor to
46 initialize the form.
47
48
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
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