Professional Documents
Culture Documents
panel.add(hardButton);
return panel;
}
/*
* Create radio buttons for choosing the operation
* @return panel
*/
public JPanel createOperationButtons() {
/***** OPERATION BUTTON OPTIONS *****/
addButton = new JRadioButton("Addition", true);
subButton = new JRadioButton("Subtraction");
mulButton = new JRadioButton("Multiplication");
divButton = new JRadioButton("Division");
/***** ADD LISTENER *****/
addButton.addActionListener(listener);
subButton.addActionListener(listener);
mulButton.addActionListener(listener);
divButton.addActionListener(listener);
/***** GROUP OPERATIOIN BUTTONS *****/
ButtonGroup operationGroup = new ButtonGroup();
operationGroup.add(addButton);
operationGroup.add(subButton);
operationGroup.add(mulButton);
operationGroup.add(divButton);
/***** CREATE PANEL *****/
JPanel panel = new JPanel(new FlowLayout());
panel.setBorder(new TitledBorder(new EtchedBorder(), "Operation"));
panel.add(addButton);
panel.add(subButton);
panel.add(mulButton);
panel.add(divButton);
return panel;
}
/*
* Creates a button to calculate a random problem
* @return panel
*/
public JPanel createCalculateButton() {
/***** CREATE CALCULATE BUTTON *****/
calculateButton = new JButton("Calculate");
calculateButton.setPreferredSize(new Dimension(410,30));
/***** ADD LISTENER *****/
calculateButton.addActionListener(new ChoiceListener());
/***** CREATE PANEL *****/
JPanel panel = new JPanel();
panel.add(calculateButton);
return panel;
}
/*
* Creates a button to check if answer is correct
* @return panel
*/
public JPanel createAnswerButton() {
/***** CREATE ANSWER BUTTON *****/
answerButton = new JButton("Check Answer");
answerButton.setPreferredSize(new Dimension(410, 30));
/***** ADD LISTENER *****/
answerButton.addActionListener(new ChoiceListener());
/***** CREATE PANEL *****/
JPanel panel = new JPanel();
panel.add(answerButton);
return panel;
}
/*
* Creates the text area to show the history
* @return panel
*/
public JPanel createTextArea() {
/***** HISTORY DISPLAYED IN TEXTAREA *****/
textArea = new JTextArea(22,20);
textArea.setText("User History:\n");
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setEditable(false);
/***** CREATE SCROLL BAR *****/
JScrollPane scroll = new JScrollPane(textArea, JScrollPane.VERTICAL_SCRO
LLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
/***** CREATE PANEL *****/
JPanel panel = new JPanel();
panel.add(scroll);
return panel;
}
/*
* Shows the problem in large font
* @return panel
*/
public JPanel showProblem() {
/***** CREATE PROBLEM LABEL *****/
problemLabel = new JLabel("Problem Display");
problemLabel.setFont(new Font("Serif", Font.PLAIN, 30));
/***** CREATE PANEL *****/
JPanel panel = new JPanel();
panel.add(problemLabel);
return panel;
}
/*
* Shows the user's answer in a textfield
* @return panel
*/
public JPanel showAnswer() {
/***** CREATE PROBLEM LABEL *****/
directionLabel = new JLabel("Answer Here");
/***** CREATE USER TEXTFIELD *****/
userAnswer = new JTextField(25);
/***** CREATE PANEL *****/
JPanel panel = new JPanel();
panel.add(directionLabel);
panel.add(userAnswer);
return panel;
}
/*
* Shows if the user got the correct answer or not
* @return panel
*/
public JPanel showConclusion() {
/***** CREATE CONCLUSION LABEL *****/
conclusionLabel = new JLabel("");
conclusionLabel.setFont(new Font("Serif", Font.PLAIN, 30));
/***** CREATE PANEL *****/
JPanel panel = new JPanel();
panel.add(conclusionLabel);
return panel;
}
/*
* Shared listener for the buttons and stores the data in a stack
*/
class ChoiceListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if(event.getSource() == calculateButton) {
setProblem();
}
if(event.getSource() == answerButton) {
getAnswer();
sHist.add(problemLabel.getText());
sHist.add(userAnswer.getText());
sHist.add(conclusionLabel.getText());
for(String s : sHist) {
textArea.append(s.toString() + "\n");
}
}
}
}
/*
* Generates the problem by calling two random numbers and figuring
* out the math
*/
public void setProblem() {
if(easyButton.isSelected()) {
if(addButton.isSelected()) {
GenerateNumber num = new GenerateNumber(1,50);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.additionNumber();
problemLabel.setText(number1 + " + " + number2 + " = ");
}
if(subButton.isSelected()) {
GenerateNumber num = new GenerateNumber(1,50);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.subtractionNumber();
problemLabel.setText(number1 + " - " + number2 + " = ");
}
if(mulButton.isSelected()) {
GenerateNumber num = new GenerateNumber(1,12);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.multiplicationNumber();
problemLabel.setText(number1 + " * " + number2 + " = ");
}
if(divButton.isSelected()) {
GenerateNumber num = new GenerateNumber(1,12);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.divisionNumber();
problemLabel.setText(number1 + " / " + number2 + " = ");
}
} else if(moderateButton.isSelected()) {
if(addButton.isSelected()) {
GenerateNumber num = new GenerateNumber(10,100);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.additionNumber();
problemLabel.setText(number1 + " + " + number2 + " = ");
}
if(subButton.isSelected()) {
GenerateNumber num = new GenerateNumber(10,100);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.subtractionNumber();
problemLabel.setText(number1 + " - " + number2 + "
}
if(mulButton.isSelected()) {
GenerateNumber num = new GenerateNumber(10,50);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.multiplicationNumber();
problemLabel.setText(number1 + " * " + number2 + "
}
if(divButton.isSelected()) {
GenerateNumber num = new GenerateNumber(10,50);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.divisionNumber();
problemLabel.setText(number1 + " / " + number2 + "
}
} else {
if(addButton.isSelected()) {
GenerateNumber num = new GenerateNumber(100,1000);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.additionNumber();
problemLabel.setText(number1 + " + " + number2 + "
}
if(subButton.isSelected()) {
GenerateNumber num = new GenerateNumber(100,1000);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.subtractionNumber();
problemLabel.setText(number1 + " - " + number2 + "
}
if(mulButton.isSelected()) {
GenerateNumber num = new GenerateNumber(10,100);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.multiplicationNumber();
problemLabel.setText(number1 + " * " + number2 + "
}
if(divButton.isSelected()) {
GenerateNumber num = new GenerateNumber(10,100);
number1 = num.getNumber1();
number2 = num.getNumber2();
result = num.divisionNumber();
problemLabel.setText(number1 + " / " + number2 + "
}
}
problemLabel.setFont(new Font("Serif", Font.PLAIN, 30));
problemLabel.repaint();
= ");
= ");
= ");
= ");
= ");
= ");
= ");
}
/*
* If user's answer matches correct answer then it will display it or it