/* Anagram Game Application */ package com.toy.anagrams.ui; import com.toy.anagrams.lib.WordLibrary; import java.awt.Dimension; import java.awt.Point; import java.awt.Toolkit; import java.awt.event.ActionListener; import java.awt.event.WindowListener; import javax.swing.JFrame; /** * Main window of the Anagram Game application. */ public class Anagrams extends JFrame implements ActionListener, WindowListener { public static void main(String[] args) { new Anagrams().setVisible(true); } private int wordIdx = 0; /** Creates new form Anagrams */ public Anagrams() { initComponents(); getRootPane().setDefaultButton(guessButton); scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx)); pack(); guessedWord.requestFocusInWindow(); // Center in the screen Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = getSize(); setLocation(new Point((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.width) / 2)); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; mainPanel = new javax.swing.JPanel(); scrambledLabel = new javax.swing.JLabel(); scrambledWord = new javax.swing.JTextField(); guessLabel = new javax.swing.JLabel(); guessedWord = new javax.swing.JTextField(); feedbackLabel = new javax.swing.JLabel(); buttonsPanel = new javax.swing.JPanel(); guessButton = new javax.swing.JButton(); nextTrial = new javax.swing.JButton(); jButton1 = new javax.swing.JButton(); mainMenu = new javax.swing.JMenuBar(); fileMenu = new javax.swing.JMenu(); aboutMenuItem = new javax.swing.JMenuItem(); exitMenuItem = new javax.swing.JMenuItem(); setTitle("Anagrams"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); mainPanel.setLayout(new java.awt.GridBagLayout()); mainPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(12, 12, 12, 12))); mainPanel.setMinimumSize(new java.awt.Dimension(297, 200)); scrambledLabel.setText("Scrambled Word:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 6); mainPanel.add(scrambledLabel, gridBagConstraints); scrambledWord.setColumns(20); scrambledWord.setEditable(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 0); mainPanel.add(scrambledWord, gridBagConstraints); guessLabel.setDisplayedMnemonic('Y'); guessLabel.setLabelFor(guessedWord); guessLabel.setText("Your Guess:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 6); mainPanel.add(guessLabel, gridBagConstraints); guessedWord.setColumns(20); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 0); mainPanel.add(guessedWord, gridBagConstraints); feedbackLabel.setText(" "); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 0); mainPanel.add(feedbackLabel, gridBagConstraints); buttonsPanel.setLayout(new java.awt.GridBagLayout()); guessButton.setMnemonic('G'); guessButton.setText("Guess"); guessButton.setToolTipText("Guess the scrambled word."); guessButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guessedWordActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6); buttonsPanel.add(guessButton, gridBagConstraints); nextTrial.setMnemonic('N'); nextTrial.setText("New Word"); nextTrial.setToolTipText("Fetch a new word."); nextTrial.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { nextTrialActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; gridBagConstraints.weighty = 1.0; buttonsPanel.add(nextTrial, gridBagConstraints); jButton1.setText("jButton1"); buttonsPanel.add(jButton1, new java.awt.GridBagConstraints()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weighty = 1.0; mainPanel.add(buttonsPanel, gridBagConstraints); getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); fileMenu.setMnemonic('F'); fileMenu.setText("File"); aboutMenuItem.setMnemonic('A'); aboutMenuItem.setText("About"); aboutMenuItem.setToolTipText("About"); aboutMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aboutMenuItemActionPerformed(evt); } }); fileMenu.add(aboutMenuItem); exitMenuItem.setMnemonic('E'); exitMenuItem.setText("Exit"); exitMenuItem.setToolTipText("Quit Team, Quit!"); exitMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exitMenuItemActionPerformed(evt); } }); fileMenu.add(exitMenuItem); mainMenu.add(fileMenu); setJMenuBar(mainMenu); }//GEN-END:initComponents private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aboutMenuItemActionPerformed new About(this).setVisible(true); }//GEN-LAST:event_aboutMenuItemActionPerformed private void nextTrialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextTrialActionPerformed wordIdx = (wordIdx + 1) % WordLibrary.getSize(); feedbackLabel.setText(" "); scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx)); guessedWord.setText(""); getRootPane().setDefaultButton(guessButton); guessedWord.requestFocusInWindow(); }//GEN-LAST:event_nextTrialActionPerformed private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed System.exit(0); }//GEN-LAST:event_exitMenuItemActionPerformed private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessedWordActionPerformed if (WordLibrary.isCorrect(wordIdx, guessedWord.getText())){ feedbackLabel.setText("Correct! Try a new word!"); getRootPane().setDefaultButton(nextTrial); } else { feedbackLabel.setText("Incorrect! Try again!"); guessedWord.setText(""); } guessedWord.requestFocusInWindow(); }//GEN-LAST:event_guessedWordActionPerformed private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm System.exit(0); }//GEN-LAST:event_exitForm // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JMenuItem aboutMenuItem; private javax.swing.JPanel buttonsPanel; private javax.swing.JMenuItem exitMenuItem; private javax.swing.JLabel feedbackLabel; private javax.swing.JMenu fileMenu; private javax.swing.JButton guessButton; private javax.swing.JLabel guessLabel; private javax.swing.JTextField guessedWord; private javax.swing.JButton jButton1; private javax.swing.JMenuBar mainMenu; private javax.swing.JPanel mainPanel; private javax.swing.JButton nextTrial; private javax.swing.JLabel scrambledLabel; private javax.swing.JTextField scrambledWord; // End of variables declaration//GEN-END:variables }