/* Anagram Game Application */ package com.toy.anagrams.ui; import com.toy.anagrams.lib.WordLibrary; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.Point; import java.awt.TextField; import java.awt.Toolkit; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JRootPane; /** * Main window of the Anagram Game application. */ public class Anagrams{ public static void main(String[] args) { new Anagrams(new JFrame("Test")); } private int wordIdx = 0; private JRootPane rootPane; public Anagrams(JFrame frame){ frame.setLayout(new BorderLayout()); initComponents(); frame.add(mainPanel); scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx)); guessedWord.requestFocusInWindow(); frame.setVisible(true); } /** Creates new form Anagrams */ public Anagrams() { JFrame mainFrame = new JFrame("Anagrams"); rootPane = mainFrame.getRootPane(); initComponents(); getRootPane().setDefaultButton(guessButton); scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx)); mainFrame.pack(); guessedWord.requestFocusInWindow(); // Center in the screen Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = mainFrame.getSize(); mainFrame.setLocation(new Point((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.width) / 2)); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setVisible(true); } public Anagrams(JComponent topComponent){ initComponents(); topComponent.setLayout(new BorderLayout()); topComponent.add(mainPanel); scrambledWord.setText(WordLibrary.getScrambledWord(wordIdx)); guessedWord.requestFocusInWindow(); } private void setJMenuBar(JMenuBar menuBar){ rootPane.setJMenuBar(menuBar); } private JRootPane getRootPane(){ return rootPane; } private Container getContentPane(){ return getRootPane().getContentPane(); } /** 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. */ // //GEN-BEGIN:initComponents private void 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(); 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); 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); } // //GEN-END:initComponents 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 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 // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel buttonsPanel; private javax.swing.JLabel feedbackLabel; private javax.swing.JButton guessButton; private javax.swing.JLabel guessLabel; private javax.swing.JTextField guessedWord; 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 }