samples/componentinjection/anagram-plain/src/org/apidesign/anagram/ui/Anagrams.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:06:43 +0200
changeset 214 ce0b8f24327f
parent 213 de35ca154c1d
permissions -rw-r--r--
Not using deprecated method
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
}