Problems troubleshooting errors
I am still new to Java, and am trying to write a Guessing game program. I keep getting error messages that non-static methods can not be referenced by static context. Does anyone have any ideas how I can correct this issue?
Sorry about the lack of notes and documentation, I haven't gotten that far yet. Trying to get a workable program. Thanks in advance for any help offered.
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.JOptionPane;
public class JFrameGuess extends JFrame implements ActionListener
{
private int uGuess;
final int LENGTH = 500;
final int HEIGHT = 200;
final int LIMIT = 1000;
private int selectedNum;
JLabel gameBoard = new JLabel("I am thinking of a number between 1 and 1000.\n" +
"Can you guess my number?");
JTextField guess = new JTextField(4);
JButton startGame = new JButton("Start Game");
boolean winGame = false;
public JFrameGuess()
{
super("Program #5 - Number Guessing Game");
setSize(LENGTH, HEIGHT);
setLayout(new FlowLayout());
add(gameBoard);
add(guess);
add(startGame);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
startGame.addActionListener(this);
Random ranNum = new Random();
selectedNum = ranNum.nextInt(LIMIT) + 1;
}
public void actionPerformed(ActionEvent e)
{
uGuess = Integer.parseInt(guess.getText());
}
public static int getUserGuess()
{
return uGuess;
}
public static int getRandomNum()
{
return selectedNum;
}
public void compareValues(int newAnswer, int oldAnswer ,int comNumber, int count)
{
if(newAnswer > oldAnswer && newAnswer < comNumber)
displayWarmerLessThan(newAnswer, count);
if(newAnswer < oldAnswer && newAnswer > comNumber)
displayWarmerGreaterThan(newAnswer, count);
if(newAnswer < oldAnswer && oldAnswer < comNumber)
displayColderLessThan(newAnswer, count);
if(newAnswer > oldAnswer && oldAnswer > comNumber)
displayColderGreaterThan(newAnswer, count);
else
displayWinner(newAnswer);
}
public void displayWarmerLessThan(int num, int count)
{
JLabel game = new JLabel(num + " is TOO LOW! But you are getting WARMER. Enter guess number " + (count + 1));
setBackground(Color.RED);
add(startGame);
add(guess);
setSize(LENGTH, HEIGHT);
setVisible(true);
startGame.addActionListener(this);
}
public void displayWarmerGreaterThan(int num, int count)
{
JLabel game = new JLabel(num + " is TOO HIGH! But you are getting WARMER. Enter guess number " + (count + 1));
setBackground(Color.RED);
add(startGame);
add(guess);
setSize(LENGTH, HEIGHT);
setVisible(true);
startGame.addActionListener(this);
}
public void displayColderLessThan(int num, int count)
{
JLabel game = new JLabel(num + " is TOO LOW! But you are getting COLDER. Enter guess number " + (count + 1));
setBackground(Color.BLUE);
add(startGame);
add(guess);
setSize(LENGTH, HEIGHT);
setVisible(true);
startGame.addActionListener(this);
}
public void displayColderGreaterThan(int num, int count)
{
JLabel game = new JLabel(num + " is TOO HIGH! Ane you are getting COLDER. Enter guess number " + (count + 1));
setBackground(Color.BLUE);
add(startGame);
add(guess);
setSize(LENGTH, HEIGHT);
setVisible(true);
startGame.addActionListener(this);
}
public void displayWinner(int num)
{
winGame = true;
setBackground(Color.YELLOW);
setVisible(true);
setSize(LENGTH, HEIGHT);
JLabel winner = new JLabel("Congratulations " + num + " is the right number.\n" +
"Would you like to play again?");
}
public static void main(String[] args)
{
int count = 1;
int newAnswer = 0;
int oldAnswer = 0;
int CompNum = getRandomNum();
JFrameGuess GuessingGame = new JFrameGuess();
oldAnswer = newAnswer;
newAnswer = getUserNumber();
compareValues(newAnswer, oldAnswer, CompNum, count);
}
}