KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > toy > anagrams > ui > Anagrams


1 /* Anagram Game Application */
2
3 package com.toy.anagrams.ui;
4
5 import com.toy.anagrams.lib.WordLibrary;
6 import java.awt.Dimension JavaDoc;
7 import java.awt.Point JavaDoc;
8 import java.awt.Toolkit JavaDoc;
9 import java.awt.event.ActionListener JavaDoc;
10 import java.awt.event.WindowListener JavaDoc;
11 import javax.swing.JFrame JavaDoc;
12
13 /**
14  * Main window of the Anagram Game application.
15  */

16 public class Anagrams extends JFrame JavaDoc {
17
18     public static void main(String JavaDoc[] args) {
19         new Anagrams().setVisible(true);
20     }
21
22     private int wordIdx = 0;
23
24     /** Creates new form Anagrams */
25     public Anagrams() {
26         initComponents();
27         getRootPane().setDefaultButton(guessButton);
28         scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx));
29         pack();
30         guessedWord.requestFocusInWindow();
31         // Center in the screen
32
Dimension JavaDoc screenSize = Toolkit.getDefaultToolkit().getScreenSize();
33         Dimension JavaDoc frameSize = getSize();
34         setLocation(new Point JavaDoc((screenSize.width - frameSize.width) / 2,
35                               (screenSize.height - frameSize.width) / 2));
36     }
37
38     /** This method is called from within the constructor to
39      * initialize the form.
40      * WARNING: Do NOT modify this code. The content of this method is
41      * always regenerated by the Form Editor.
42      */

43     private void initComponents() {//GEN-BEGIN:initComponents
44
java.awt.GridBagConstraints JavaDoc gridBagConstraints;
45
46         mainPanel = new javax.swing.JPanel JavaDoc();
47         scrambledLabel = new javax.swing.JLabel JavaDoc();
48         scrambledWord = new javax.swing.JTextField JavaDoc();
49         guessLabel = new javax.swing.JLabel JavaDoc();
50         guessedWord = new javax.swing.JTextField JavaDoc();
51         feedbackLabel = new javax.swing.JLabel JavaDoc();
52         buttonsPanel = new javax.swing.JPanel JavaDoc();
53         guessButton = new javax.swing.JButton JavaDoc();
54         nextTrial = new javax.swing.JButton JavaDoc();
55         mainMenu = new javax.swing.JMenuBar JavaDoc();
56         fileMenu = new javax.swing.JMenu JavaDoc();
57         aboutMenuItem = new javax.swing.JMenuItem JavaDoc();
58         exitMenuItem = new javax.swing.JMenuItem JavaDoc();
59
60         setTitle("Anagrams");
61         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
62             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
63                 exitForm(evt);
64             }
65         });
66
67         mainPanel.setLayout(new java.awt.GridBagLayout JavaDoc());
68
69         mainPanel.setBorder(new javax.swing.border.EmptyBorder JavaDoc(new java.awt.Insets JavaDoc(12, 12, 12, 12)));
70         mainPanel.setMinimumSize(new java.awt.Dimension JavaDoc(297, 200));
71         scrambledLabel.setText("Scrambled Word:");
72         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
73         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
74         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
75         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 12, 6);
76         mainPanel.add(scrambledLabel, gridBagConstraints);
77
78         scrambledWord.setColumns(20);
79         scrambledWord.setEditable(false);
80         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
81         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
82         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
83         gridBagConstraints.weightx = 1.0;
84         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 12, 0);
85         mainPanel.add(scrambledWord, gridBagConstraints);
86
87         guessLabel.setDisplayedMnemonic('Y');
88         guessLabel.setLabelFor(guessedWord);
89         guessLabel.setText("Your Guess:");
90         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
91         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
92         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
93         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 20, 6);
94         mainPanel.add(guessLabel, gridBagConstraints);
95
96         guessedWord.setColumns(20);
97         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
98         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
99         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
100         gridBagConstraints.weightx = 1.0;
101         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 20, 0);
102         mainPanel.add(guessedWord, gridBagConstraints);
103
104         feedbackLabel.setText(" ");
105         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
106         gridBagConstraints.gridx = 1;
107         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
108         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
109         gridBagConstraints.weightx = 1.0;
110         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 20, 0);
111         mainPanel.add(feedbackLabel, gridBagConstraints);
112
113         buttonsPanel.setLayout(new java.awt.GridBagLayout JavaDoc());
114
115         guessButton.setMnemonic('G');
116         guessButton.setText("Guess");
117         guessButton.setToolTipText("Guess the scrambled word.");
118         guessButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
119             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
120                 guessedWordActionPerformed(evt);
121             }
122         });
123
124         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
125         gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
126         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
127         gridBagConstraints.weightx = 1.0;
128         gridBagConstraints.weighty = 1.0;
129         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 6);
130         buttonsPanel.add(guessButton, gridBagConstraints);
131
132         nextTrial.setMnemonic('N');
133         nextTrial.setText("New Word");
134         nextTrial.setToolTipText("Fetch a new word.");
135         nextTrial.addActionListener(new java.awt.event.ActionListener JavaDoc() {
136             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
137                 nextTrialActionPerformed(evt);
138             }
139         });
140
141         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
142         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
143         gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
144         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
145         gridBagConstraints.weighty = 1.0;
146         buttonsPanel.add(nextTrial, gridBagConstraints);
147
148         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
149         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
150         gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
151         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
152         gridBagConstraints.weighty = 1.0;
153         mainPanel.add(buttonsPanel, gridBagConstraints);
154
155         getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);
156
157         fileMenu.setMnemonic('F');
158         fileMenu.setText("File");
159         aboutMenuItem.setMnemonic('A');
160         aboutMenuItem.setText("About");
161         aboutMenuItem.setToolTipText("About");
162         aboutMenuItem.addActionListener(new java.awt.event.ActionListener JavaDoc() {
163             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
164                 aboutMenuItemActionPerformed(evt);
165             }
166         });
167
168         fileMenu.add(aboutMenuItem);
169
170         exitMenuItem.setMnemonic('E');
171         exitMenuItem.setText("Exit");
172         exitMenuItem.setToolTipText("Quit Team, Quit!");
173         exitMenuItem.addActionListener(new java.awt.event.ActionListener JavaDoc() {
174             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
175                 exitMenuItemActionPerformed(evt);
176             }
177         });
178
179         fileMenu.add(exitMenuItem);
180
181         mainMenu.add(fileMenu);
182
183         setJMenuBar(mainMenu);
184
185     }//GEN-END:initComponents
186

187     private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_aboutMenuItemActionPerformed
188
new About(this).setVisible(true);
189     }//GEN-LAST:event_aboutMenuItemActionPerformed
190

191     private void nextTrialActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_nextTrialActionPerformed
192
wordIdx = (wordIdx + 1) % WordLibrary.getSize();
193
194         feedbackLabel.setText(" ");
195         scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx));
196         guessedWord.setText("");
197         getRootPane().setDefaultButton(guessButton);
198
199         guessedWord.requestFocusInWindow();
200     }//GEN-LAST:event_nextTrialActionPerformed
201

202     private void exitMenuItemActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_exitMenuItemActionPerformed
203
System.exit(0);
204     }//GEN-LAST:event_exitMenuItemActionPerformed
205

206     private void guessedWordActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_guessedWordActionPerformed
207
if (WordLibrary.isCorrect(wordIdx, guessedWord.getText())){
208             feedbackLabel.setText("Correct! Try a new word!");
209             getRootPane().setDefaultButton(nextTrial);
210         } else {
211             feedbackLabel.setText("Incorrect! Try again!");
212             guessedWord.setText("");
213         }
214
215         guessedWord.requestFocusInWindow();
216     }//GEN-LAST:event_guessedWordActionPerformed
217

218     private void exitForm(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_exitForm
219
System.exit(0);
220     }//GEN-LAST:event_exitForm
221

222     // Variables declaration - do not modify//GEN-BEGIN:variables
223
private javax.swing.JMenuItem JavaDoc aboutMenuItem;
224     private javax.swing.JPanel JavaDoc buttonsPanel;
225     private javax.swing.JMenuItem JavaDoc exitMenuItem;
226     private javax.swing.JLabel JavaDoc feedbackLabel;
227     private javax.swing.JMenu JavaDoc fileMenu;
228     private javax.swing.JButton JavaDoc guessButton;
229     private javax.swing.JLabel JavaDoc guessLabel;
230     private javax.swing.JTextField JavaDoc guessedWord;
231     private javax.swing.JMenuBar JavaDoc mainMenu;
232     private javax.swing.JPanel JavaDoc mainPanel;
233     private javax.swing.JButton JavaDoc nextTrial;
234     private javax.swing.JLabel JavaDoc scrambledLabel;
235     private javax.swing.JTextField JavaDoc scrambledWord;
236     // End of variables declaration//GEN-END:variables
237

238 }
239
Popular Tags