jtulach@213
|
1 |
package org.apidesign.anagram.ui;
|
jtulach@213
|
2 |
|
jtulach@213
|
3 |
import org.apidesign.anagram.lib.WordLibrary;
|
jtulach@213
|
4 |
|
jtulach@213
|
5 |
/**
|
jtulach@213
|
6 |
*
|
jtulach@213
|
7 |
* @author Dirk Ruiz
|
jtulach@213
|
8 |
*/
|
jtulach@213
|
9 |
public class Anagrams extends javax.swing.JFrame {
|
jtulach@213
|
10 |
|
jtulach@213
|
11 |
/** Creates new form Anagrams */
|
jtulach@213
|
12 |
public Anagrams() {
|
jtulach@213
|
13 |
initComponents();
|
jtulach@213
|
14 |
scrambledWord.setText(wl.getScrambledWord(wordIdx));
|
jtulach@213
|
15 |
getRootPane().setDefaultButton(guessButton);
|
jtulach@213
|
16 |
}
|
jtulach@213
|
17 |
WordLibrary wl = new WordLibrary();
|
jtulach@213
|
18 |
int wordIdx = 0;
|
jtulach@213
|
19 |
|
jtulach@213
|
20 |
/** This method is called from within the constructor to
|
jtulach@213
|
21 |
* initialize the form.
|
jtulach@213
|
22 |
* WARNING: Do NOT modify this code. The content of this method is
|
jtulach@213
|
23 |
* always regenerated by the Form Editor.
|
jtulach@213
|
24 |
*/
|
jtulach@213
|
25 |
private void initComponents() {//GEN-BEGIN:initComponents
|
jtulach@213
|
26 |
java.awt.GridBagConstraints gridBagConstraints;
|
jtulach@213
|
27 |
|
jtulach@213
|
28 |
mainPanel = new javax.swing.JPanel();
|
jtulach@213
|
29 |
scrambledLabel = new javax.swing.JLabel();
|
jtulach@213
|
30 |
guessLabel = new javax.swing.JLabel();
|
jtulach@213
|
31 |
feedbackLabel = new javax.swing.JLabel();
|
jtulach@213
|
32 |
guessButton = new javax.swing.JButton();
|
jtulach@213
|
33 |
scrambledWord = new javax.swing.JTextField();
|
jtulach@213
|
34 |
guessedWord = new javax.swing.JTextField();
|
jtulach@213
|
35 |
nextTrial = new javax.swing.JButton();
|
jtulach@213
|
36 |
mainMenu = new javax.swing.JMenuBar();
|
jtulach@213
|
37 |
File = new javax.swing.JMenu();
|
jtulach@213
|
38 |
jMenuItem1 = new javax.swing.JMenuItem();
|
jtulach@213
|
39 |
jMenuItem2 = new javax.swing.JMenuItem();
|
jtulach@213
|
40 |
|
jtulach@213
|
41 |
setTitle("Anagrams");
|
jtulach@213
|
42 |
addWindowListener(new java.awt.event.WindowAdapter() {
|
jtulach@213
|
43 |
public void windowClosing(java.awt.event.WindowEvent evt) {
|
jtulach@213
|
44 |
exitForm(evt);
|
jtulach@213
|
45 |
}
|
jtulach@213
|
46 |
});
|
jtulach@213
|
47 |
|
jtulach@213
|
48 |
mainPanel.setLayout(new java.awt.GridBagLayout());
|
jtulach@213
|
49 |
|
jtulach@213
|
50 |
mainPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(11, 11, 12, 12)));
|
jtulach@213
|
51 |
mainPanel.setMinimumSize(new java.awt.Dimension(297, 200));
|
jtulach@213
|
52 |
mainPanel.setPreferredSize(new java.awt.Dimension(297, 200));
|
jtulach@213
|
53 |
scrambledLabel.setText("Scrambled Word:");
|
jtulach@213
|
54 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
55 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
jtulach@213
|
56 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
|
jtulach@213
|
57 |
gridBagConstraints.insets = new java.awt.Insets(12, 12, 12, 6);
|
jtulach@213
|
58 |
mainPanel.add(scrambledLabel, gridBagConstraints);
|
jtulach@213
|
59 |
|
jtulach@213
|
60 |
guessLabel.setText("Your Guess:");
|
jtulach@213
|
61 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
62 |
gridBagConstraints.gridx = 0;
|
jtulach@213
|
63 |
gridBagConstraints.gridy = 1;
|
jtulach@213
|
64 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
jtulach@213
|
65 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
|
jtulach@213
|
66 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 6);
|
jtulach@213
|
67 |
mainPanel.add(guessLabel, gridBagConstraints);
|
jtulach@213
|
68 |
|
jtulach@213
|
69 |
feedbackLabel.setText(" ");
|
jtulach@213
|
70 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
71 |
gridBagConstraints.gridx = 1;
|
jtulach@213
|
72 |
gridBagConstraints.gridy = 2;
|
jtulach@213
|
73 |
gridBagConstraints.gridwidth = 2;
|
jtulach@213
|
74 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
jtulach@213
|
75 |
gridBagConstraints.weightx = 1.0;
|
jtulach@213
|
76 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 6);
|
jtulach@213
|
77 |
mainPanel.add(feedbackLabel, gridBagConstraints);
|
jtulach@213
|
78 |
|
jtulach@213
|
79 |
guessButton.setMnemonic('G');
|
jtulach@213
|
80 |
guessButton.setText("Guess");
|
jtulach@213
|
81 |
guessButton.setToolTipText("Guess the scrambled word.");
|
jtulach@213
|
82 |
guessButton.addActionListener(new java.awt.event.ActionListener() {
|
jtulach@213
|
83 |
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
jtulach@213
|
84 |
guessedWordActionPerformed(evt);
|
jtulach@213
|
85 |
}
|
jtulach@213
|
86 |
});
|
jtulach@213
|
87 |
|
jtulach@213
|
88 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
89 |
gridBagConstraints.gridx = 2;
|
jtulach@213
|
90 |
gridBagConstraints.gridy = 3;
|
jtulach@213
|
91 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
|
jtulach@213
|
92 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 6);
|
jtulach@213
|
93 |
mainPanel.add(guessButton, gridBagConstraints);
|
jtulach@213
|
94 |
|
jtulach@213
|
95 |
scrambledWord.setEditable(false);
|
jtulach@213
|
96 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
97 |
gridBagConstraints.gridwidth = 3;
|
jtulach@213
|
98 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
jtulach@213
|
99 |
gridBagConstraints.weightx = 1.0;
|
jtulach@213
|
100 |
gridBagConstraints.insets = new java.awt.Insets(12, 0, 12, 11);
|
jtulach@213
|
101 |
mainPanel.add(scrambledWord, gridBagConstraints);
|
jtulach@213
|
102 |
|
jtulach@213
|
103 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
104 |
gridBagConstraints.gridx = 1;
|
jtulach@213
|
105 |
gridBagConstraints.gridy = 1;
|
jtulach@213
|
106 |
gridBagConstraints.gridwidth = 3;
|
jtulach@213
|
107 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
jtulach@213
|
108 |
gridBagConstraints.weightx = 1.0;
|
jtulach@213
|
109 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 11);
|
jtulach@213
|
110 |
mainPanel.add(guessedWord, gridBagConstraints);
|
jtulach@213
|
111 |
|
jtulach@213
|
112 |
nextTrial.setMnemonic('N');
|
jtulach@213
|
113 |
nextTrial.setText("New Word");
|
jtulach@213
|
114 |
nextTrial.setToolTipText("Fetch a new word.");
|
jtulach@213
|
115 |
nextTrial.addActionListener(new java.awt.event.ActionListener() {
|
jtulach@213
|
116 |
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
jtulach@213
|
117 |
nextTrialActionPerformed(evt);
|
jtulach@213
|
118 |
}
|
jtulach@213
|
119 |
});
|
jtulach@213
|
120 |
|
jtulach@213
|
121 |
gridBagConstraints = new java.awt.GridBagConstraints();
|
jtulach@213
|
122 |
gridBagConstraints.gridx = 3;
|
jtulach@213
|
123 |
gridBagConstraints.gridy = 3;
|
jtulach@213
|
124 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 11);
|
jtulach@213
|
125 |
mainPanel.add(nextTrial, gridBagConstraints);
|
jtulach@213
|
126 |
|
jtulach@213
|
127 |
getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);
|
jtulach@213
|
128 |
|
jtulach@213
|
129 |
File.setText("File");
|
jtulach@213
|
130 |
jMenuItem1.setText("About");
|
jtulach@213
|
131 |
jMenuItem1.setToolTipText("About");
|
jtulach@213
|
132 |
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
|
jtulach@213
|
133 |
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
jtulach@213
|
134 |
jMenuItem1ActionPerformed(evt);
|
jtulach@213
|
135 |
}
|
jtulach@213
|
136 |
});
|
jtulach@213
|
137 |
|
jtulach@213
|
138 |
File.add(jMenuItem1);
|
jtulach@213
|
139 |
|
jtulach@213
|
140 |
jMenuItem2.setText("Exit");
|
jtulach@213
|
141 |
jMenuItem2.setToolTipText("Quit Team, Quit!");
|
jtulach@213
|
142 |
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
|
jtulach@213
|
143 |
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
jtulach@213
|
144 |
jMenuItem2ActionPerformed(evt);
|
jtulach@213
|
145 |
}
|
jtulach@213
|
146 |
});
|
jtulach@213
|
147 |
|
jtulach@213
|
148 |
File.add(jMenuItem2);
|
jtulach@213
|
149 |
|
jtulach@213
|
150 |
mainMenu.add(File);
|
jtulach@213
|
151 |
|
jtulach@213
|
152 |
setJMenuBar(mainMenu);
|
jtulach@213
|
153 |
|
jtulach@213
|
154 |
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
|
jtulach@213
|
155 |
setBounds((screenSize.width-400)/2, (screenSize.height-250)/2, 400, 250);
|
jtulach@213
|
156 |
}//GEN-END:initComponents
|
jtulach@213
|
157 |
|
jtulach@213
|
158 |
private void nextTrialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextTrialActionPerformed
|
jtulach@213
|
159 |
wordIdx = (wordIdx + 1) % wl.getSize();
|
jtulach@213
|
160 |
|
jtulach@213
|
161 |
feedbackLabel.setText(" ");
|
jtulach@213
|
162 |
scrambledWord.setText(wl.getScrambledWord(wordIdx));
|
jtulach@213
|
163 |
guessedWord.setText("");
|
jtulach@213
|
164 |
getRootPane().setDefaultButton(guessButton);
|
jtulach@213
|
165 |
|
jtulach@213
|
166 |
guessedWord.requestFocus();
|
jtulach@213
|
167 |
}//GEN-LAST:event_nextTrialActionPerformed
|
jtulach@213
|
168 |
|
jtulach@213
|
169 |
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
|
jtulach@213
|
170 |
System.exit(0);
|
jtulach@213
|
171 |
}//GEN-LAST:event_jMenuItem2ActionPerformed
|
jtulach@213
|
172 |
|
jtulach@213
|
173 |
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
|
jtulach@213
|
174 |
new About().show();
|
jtulach@213
|
175 |
}//GEN-LAST:event_jMenuItem1ActionPerformed
|
jtulach@213
|
176 |
|
jtulach@213
|
177 |
private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessedWordActionPerformed
|
jtulach@213
|
178 |
|
jtulach@213
|
179 |
if(wl.isCorrect(wordIdx, guessedWord.getText())){
|
jtulach@213
|
180 |
feedbackLabel.setText("Correct! Try a new word!");
|
jtulach@213
|
181 |
getRootPane().setDefaultButton(nextTrial);
|
jtulach@213
|
182 |
} else {
|
jtulach@213
|
183 |
feedbackLabel.setText("Incorrect! Try again!");
|
jtulach@213
|
184 |
guessedWord.setText("");
|
jtulach@213
|
185 |
}
|
jtulach@213
|
186 |
|
jtulach@213
|
187 |
guessedWord.requestFocus();
|
jtulach@213
|
188 |
}//GEN-LAST:event_guessedWordActionPerformed
|
jtulach@213
|
189 |
|
jtulach@213
|
190 |
/** Exit the Application */
|
jtulach@213
|
191 |
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
|
jtulach@213
|
192 |
System.exit(0);
|
jtulach@213
|
193 |
}//GEN-LAST:event_exitForm
|
jtulach@213
|
194 |
|
jtulach@213
|
195 |
@Override
|
jtulach@213
|
196 |
public void setVisible(boolean v) {
|
jtulach@213
|
197 |
super.setVisible(v);
|
jtulach@213
|
198 |
if (v) {
|
jtulach@213
|
199 |
guessedWord.requestFocus();
|
jtulach@213
|
200 |
}
|
jtulach@213
|
201 |
}
|
jtulach@213
|
202 |
|
jtulach@213
|
203 |
/**
|
jtulach@213
|
204 |
* @param args the command line arguments
|
jtulach@213
|
205 |
*/
|
jtulach@213
|
206 |
public static void main(String args[]) {
|
jtulach@214
|
207 |
new Anagrams().setVisible(true);
|
jtulach@213
|
208 |
}
|
jtulach@213
|
209 |
|
jtulach@213
|
210 |
|
jtulach@213
|
211 |
// Variables declaration - do not modify//GEN-BEGIN:variables
|
jtulach@213
|
212 |
private javax.swing.JMenu File;
|
jtulach@213
|
213 |
private javax.swing.JLabel feedbackLabel;
|
jtulach@213
|
214 |
private javax.swing.JButton guessButton;
|
jtulach@213
|
215 |
private javax.swing.JLabel guessLabel;
|
jtulach@213
|
216 |
private javax.swing.JTextField guessedWord;
|
jtulach@213
|
217 |
private javax.swing.JMenuItem jMenuItem1;
|
jtulach@213
|
218 |
private javax.swing.JMenuItem jMenuItem2;
|
jtulach@213
|
219 |
private javax.swing.JMenuBar mainMenu;
|
jtulach@213
|
220 |
private javax.swing.JPanel mainPanel;
|
jtulach@213
|
221 |
private javax.swing.JButton nextTrial;
|
jtulach@213
|
222 |
private javax.swing.JLabel scrambledLabel;
|
jtulach@213
|
223 |
private javax.swing.JTextField scrambledWord;
|
jtulach@213
|
224 |
// End of variables declaration//GEN-END:variables
|
jtulach@213
|
225 |
|
jtulach@213
|
226 |
}
|