/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package guiguessinggametest; import java.awt.Component; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.LayoutManager; import java.awt.Insets; import javax.swing.*; import java.util.Random; import java.awt.event.*; import java.util.GregorianCalendar; /** * * @author jcmtiernan */ public class GameFrame extends JPanel { private GridBagLayout layout = new GridBagLayout(); // layout of this frame private GridBagConstraints constraints; // constraints of this layout //private GridBagConstraints constraints = new GridBagConstraints(); // constraints of this layout private JLabel guessQuestion = new JLabel("Try to guess the selected integer between 0 and 1000"); private JLabel guessTextLabel = new JLabel("My guess is: "); private JTextField guessText = new JTextField(5); private int playerGuess = -1; private JLabel guessCountLabel = new JLabel("This is your guess number "); private int guessCount = 0; private JTextArea guessCountNum = new JTextArea(Integer.toString(guessCount)); private GregorianCalendar calRandom = new GregorianCalendar(); //private Random randomGen = new Random(6673482933L); // use for repeatability private Random randomGen = new Random(calRandom.getTimeInMillis()); private int selectedInteger = randomGen.nextInt(1001); private int differenceGuess = -1001; private boolean checkGuess = false; private JLabel guessResult = new JLabel(""); public GameFrame() { layout = new GridBagLayout(); constraints = new GridBagConstraints(); // constraints of this layout //constraints.insets = new Insets(0, 0, 0, 0); //constraints.gridx = 0; //constraints.gridy = 0; constraints.fill = constraints.NONE; constraints.ipadx = 30; constraints.ipady = 10; //constraints.gridwidth = 1; //constraints.gridheight = 1; this.setLayout(layout); //System.out.println("In GameFrame constructor"); //this.setSize(300,200); this.addMyComponent( guessQuestion, 0, 0, 4, 1 ); //this.add(guessQuestion); this.gameSetUp(); //System.out.println("In GameFrame constructor after gameSetUp"); addMyComponent( guessResult, 3, 0, 4, 1 ); System.out.println("In GameFrame constructor after result added"); } public void gameSetUp() { addMyComponent( guessTextLabel, 1, 0, 2, 1); addMyComponent( guessText, 1, 2, 2, 1 ); //this.add(guessText); addMyComponent( guessCountLabel, 2, 0, 3, 1); //this.add(guessCountLabel); addMyComponent( guessCountNum, 2, 3, 1, 1 ); //this.add(guessCountNum); System.out.println("In gameSetUp"); } public void gamePlay() throws InterruptedException { //System.out.println("In gamePlay"); guessText.addActionListener(new GuessListener()); //this.setVisible(true); while (differenceGuess != 0) { Thread.sleep(250); //System.out.println(""); if (checkGuess) { guessCount++; //System.out.println("In gamePlay; while ; if (checkGuess) is true"); this.setVisible(false); guessResult.setText(""); guessCountNum.setText(Integer.toString(guessCount)); differenceGuess = playerGuess - selectedInteger; if (differenceGuess > 0) { //System.out.println("In gamePlay; while ; chkGs true; if diffGuess > 0 "); guessResult.setText("Your guess is greater than the selected integer"); } else if (differenceGuess < 0) { //System.out.println("In gamePlay; while ; chkGs true; if diffGuess < 0 "); guessResult.setText("Your guess is less than the selected integer"); } checkGuess = false; this.setVisible(true); //System.out.println("In gamePlay; while ; chkGs true ** end of block "); } //System.out.println("In gamePlay ; while (diff != 0) ** end of block"); } guessResult.setText("You got it!!"); } private class GuessListener implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getSource() == guessText) { setPlayerGuess(Integer.parseInt(guessText.getText())); //System.out.println("In handler playerGuess is "+getPlayerGuess()); checkGuess = true; } } } private void addMyComponent( Component component, int row, int column, int width, int height ) { constraints.gridx = column; // set gridx constraints.gridy = row; // set gridy constraints.gridwidth = width; // set gridwidth constraints.gridheight = height; // set gridheight layout.setConstraints( component, constraints ); // set constraints add( component ); // add component } // end method addComponent public JTextField getGuessText() { return guessText; } public void setGuessText(JTextField guessText) { this.guessText = guessText; } public JLabel getGuessQuestion() { return guessQuestion; } public void setGuessQuestion(JLabel guessQuestion) { this.guessQuestion = guessQuestion; } public int getGuessCount() { return guessCount; } public void setGuessCount(int guessCount) { this.guessCount = guessCount; } public void incrGuessCount() { this.guessCount++; } public Random getRandomGen() { return randomGen; } //public void setRandomGen(Random randomGen) { // this.randomGen = randomGen; //} public int getSelectedInteger() { return selectedInteger; } public void setSelectedInteger(int selectedInteger) { this.selectedInteger = selectedInteger; } public int getPlayerGuess() { return playerGuess; } public void setPlayerGuess(int playerGuess) { this.playerGuess = playerGuess; } public JLabel getGuessCountLabel() { return guessCountLabel; } public void setGuessCountLabel(JLabel guessCountLabel) { this.guessCountLabel = guessCountLabel; } }