1
/* Anagram Game Application */
3
package com.toy.anagrams.ui;
5
import com.toy.anagrams.lib.WordLibrary;
6
import java.awt.Dimension;
8
import java.awt.Toolkit;
9
import java.awt.event.ActionListener;
10
import java.awt.event.WindowListener;
11
import javax.swing.JFrame;
14
* Main window of the Anagram Game application.
16
public class Anagrams extends JFrame {
18
public static void main(String[] args) {
19
new Anagrams().setVisible(true);
22
private int wordIdx = 0;
24
/** Creates new form Anagrams */
27
getRootPane().setDefaultButton(guessButton);
28
scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx));
30
guessedWord.requestFocusInWindow();
31
// Center in the screen
32
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
33
Dimension frameSize = getSize();
34
setLocation(new Point((screenSize.width - frameSize.width) / 2,
35
(screenSize.height - frameSize.width) / 2));
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.
43
private void initComponents() {//GEN-BEGIN:initComponents
44
java.awt.GridBagConstraints gridBagConstraints;
46
mainPanel = new javax.swing.JPanel();
47
scrambledLabel = new javax.swing.JLabel();
48
scrambledWord = new javax.swing.JTextField();
49
guessLabel = new javax.swing.JLabel();
50
guessedWord = new javax.swing.JTextField();
51
feedbackLabel = new javax.swing.JLabel();
52
buttonsPanel = new javax.swing.JPanel();
53
guessButton = new javax.swing.JButton();
54
nextTrial = new javax.swing.JButton();
55
mainMenu = new javax.swing.JMenuBar();
56
fileMenu = new javax.swing.JMenu();
57
aboutMenuItem = new javax.swing.JMenuItem();
58
exitMenuItem = new javax.swing.JMenuItem();
61
addWindowListener(new java.awt.event.WindowAdapter() {
62
public void windowClosing(java.awt.event.WindowEvent evt) {
67
mainPanel.setLayout(new java.awt.GridBagLayout());
69
mainPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(12, 12, 12, 12)));
70
mainPanel.setMinimumSize(new java.awt.Dimension(297, 200));
71
scrambledLabel.setText("Scrambled Word:");
72
gridBagConstraints = new java.awt.GridBagConstraints();
73
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
74
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
75
gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 6);
76
mainPanel.add(scrambledLabel, gridBagConstraints);
78
scrambledWord.setColumns(20);
79
scrambledWord.setEditable(false);
80
gridBagConstraints = new java.awt.GridBagConstraints();
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(0, 0, 12, 0);
85
mainPanel.add(scrambledWord, gridBagConstraints);
87
guessLabel.setDisplayedMnemonic('Y');
88
guessLabel.setLabelFor(guessedWord);
89
guessLabel.setText("Your Guess:");
90
gridBagConstraints = new java.awt.GridBagConstraints();
91
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
92
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
93
gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 6);
94
mainPanel.add(guessLabel, gridBagConstraints);
96
guessedWord.setColumns(20);
97
gridBagConstraints = new java.awt.GridBagConstraints();
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(0, 0, 20, 0);
102
mainPanel.add(guessedWord, gridBagConstraints);
104
feedbackLabel.setText(" ");
105
gridBagConstraints = new java.awt.GridBagConstraints();
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(0, 0, 20, 0);
111
mainPanel.add(feedbackLabel, gridBagConstraints);
113
buttonsPanel.setLayout(new java.awt.GridBagLayout());
115
guessButton.setMnemonic('G');
116
guessButton.setText("Guess");
117
guessButton.setToolTipText("Guess the scrambled word.");
118
guessButton.addActionListener(new java.awt.event.ActionListener() {
119
public void actionPerformed(java.awt.event.ActionEvent evt) {
120
guessedWordActionPerformed(evt);
124
gridBagConstraints = new java.awt.GridBagConstraints();
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(0, 0, 0, 6);
130
buttonsPanel.add(guessButton, gridBagConstraints);
132
nextTrial.setMnemonic('N');
133
nextTrial.setText("New Word");
134
nextTrial.setToolTipText("Fetch a new word.");
135
nextTrial.addActionListener(new java.awt.event.ActionListener() {
136
public void actionPerformed(java.awt.event.ActionEvent evt) {
137
nextTrialActionPerformed(evt);
141
gridBagConstraints = new java.awt.GridBagConstraints();
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);
148
gridBagConstraints = new java.awt.GridBagConstraints();
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);
155
getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);
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() {
163
public void actionPerformed(java.awt.event.ActionEvent evt) {
164
aboutMenuItemActionPerformed(evt);
168
fileMenu.add(aboutMenuItem);
170
exitMenuItem.setMnemonic('E');
171
exitMenuItem.setText("Exit");
172
exitMenuItem.setToolTipText("Quit Team, Quit!");
173
exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
174
public void actionPerformed(java.awt.event.ActionEvent evt) {
175
exitMenuItemActionPerformed(evt);
179
fileMenu.add(exitMenuItem);
181
mainMenu.add(fileMenu);
183
setJMenuBar(mainMenu);
185
}//GEN-END:initComponents
187
private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aboutMenuItemActionPerformed
188
new About(this).setVisible(true);
189
}//GEN-LAST:event_aboutMenuItemActionPerformed
191
private void nextTrialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextTrialActionPerformed
192
wordIdx = (wordIdx + 1) % WordLibrary.getSize();
194
feedbackLabel.setText(" ");
195
scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx));
196
guessedWord.setText("");
197
getRootPane().setDefaultButton(guessButton);
199
guessedWord.requestFocusInWindow();
200
}//GEN-LAST:event_nextTrialActionPerformed
202
private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed
204
}//GEN-LAST:event_exitMenuItemActionPerformed
206
private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessedWordActionPerformed
207
if (WordLibrary.isCorrect(wordIdx, guessedWord.getText())){
208
feedbackLabel.setText("Correct! Try a new word!");
209
getRootPane().setDefaultButton(nextTrial);
211
feedbackLabel.setText("Incorrect! Try again!");
212
guessedWord.setText("");
215
guessedWord.requestFocusInWindow();
216
}//GEN-LAST:event_guessedWordActionPerformed
218
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
220
}//GEN-LAST:event_exitForm
222
// Variables declaration - do not modify//GEN-BEGIN:variables
223
private javax.swing.JMenuItem aboutMenuItem;
224
private javax.swing.JPanel buttonsPanel;
225
private javax.swing.JMenuItem exitMenuItem;
226
private javax.swing.JLabel feedbackLabel;
227
private javax.swing.JMenu fileMenu;
228
private javax.swing.JButton guessButton;
229
private javax.swing.JLabel guessLabel;
230
private javax.swing.JTextField guessedWord;
231
private javax.swing.JMenuBar mainMenu;
232
private javax.swing.JPanel mainPanel;
233
private javax.swing.JButton nextTrial;
234
private javax.swing.JLabel scrambledLabel;
235
private javax.swing.JTextField scrambledWord;
236
// End of variables declaration//GEN-END:variables