import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class Teacher {
int numberOne,numberTwo;
String operator="";
boolean right;
public int giveNumberOne(int n){
numberOne=(int)(Math.random()*n)+1;
return numberOne;
}
public int giveNumberTwo(int n){
numberTwo=(int)(Math.random()*n)+1;
return numberTwo;
public String giveOperator(){
double d=Math.random();
if(d>=0.8)
operator="+";
else if(d0.5)
operator="-";
else if(d0.2)
operator="*";
else if(d
operator="/";
return operator;
public boolean getRight(int answer){
if(operator.equals("+")){
if(answer==numberOne+numberTwo)
right=true;
else
right=false;
else if(operator.equals("-")){
if(answer==numberOne-numberTwo)
else if(operator.equals("*")){
if(answer==numberOne*numberTwo)
else if(operator.equals("/")){
if(answer==numberOne/numberTwo)
return right;
public class ComputerJFrame extends JFrame implements ActionListener{
TextField textOne,textTwo,textResult;
Button getProblem,giveAnswer;
Label operatorLabel,message;
Teacher teacher;
ComputerJFrame(String s){
super(s);
teacher = new Teacher();
setLayout(new FlowLayout());
textOne = new TextField(10);
textTwo = new TextField(10);
textResult = new TextField(10);
operatorLabel = new Label("+");
message = new Label("你還沒有回答呢");
getProblem = new Button("獲取題目");
giveAnswer = new Button("確認答案");
add(getProblem);
add(textOne);
add(operatorLabel);
add(textTwo);
add(new Label("="));
add(textResult);
add(giveAnswer);
add(message);
textResult.requestFocus();
textOne.setEditable(false);//該方法設定文字框的可編輯性
textTwo.setEditable(false);
getProblem.addActionListener(this);//建立監視器
giveAnswer.addActionListener(this);
textResult.addActionListener(this);
setBounds(100,100,450,100);//設定出現螢幕上時的初始位置
setLocationRelativeTo(null);//居中
setVisible(true);//視窗的可見性
validate();
addWindowFocusListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
);
public void actionPerformed(ActionEvent e){
if(e.getSource()==getProblem){
int number1 = teacher.giveNumberOne(100);
int number2 = teacher.giveNumberTwo(100);
String operator = teacher.giveOperator();
textOne.setText(""+number1);//設定文字框中為引數字串指定的文字
textTwo.setText(""+number2);
operatorLabel.setText(operator);
message.setText("請回答");
textResult.setText(null);
if(e.getSource()==giveAnswer){
String answer = textResult.getText();
try{ int result = Integer.parseInt(answer);
if(teacher.getRight(result)==true){
message.setText("你回答正確");
else{
message.setText("你回答錯誤");
catch(NumberFormatException ex){
message.setText("請輸入數字字元");
}public class MainClass {
public static void main(String[] args) {
ComputerJFrame frame;
frame = new ComputerJFrame("算術測試");
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class Teacher {
int numberOne,numberTwo;
String operator="";
boolean right;
public int giveNumberOne(int n){
numberOne=(int)(Math.random()*n)+1;
return numberOne;
}
public int giveNumberTwo(int n){
numberTwo=(int)(Math.random()*n)+1;
return numberTwo;
}
public String giveOperator(){
double d=Math.random();
if(d>=0.8)
operator="+";
else if(d0.5)
operator="-";
else if(d0.2)
operator="*";
else if(d
operator="/";
return operator;
}
public boolean getRight(int answer){
if(operator.equals("+")){
if(answer==numberOne+numberTwo)
right=true;
else
right=false;
}
else if(operator.equals("-")){
if(answer==numberOne-numberTwo)
right=true;
else
right=false;
}
else if(operator.equals("*")){
if(answer==numberOne*numberTwo)
right=true;
else
right=false;
}
else if(operator.equals("/")){
if(answer==numberOne/numberTwo)
right=true;
else
right=false;
}
return right;
}
}
public class ComputerJFrame extends JFrame implements ActionListener{
TextField textOne,textTwo,textResult;
Button getProblem,giveAnswer;
Label operatorLabel,message;
Teacher teacher;
ComputerJFrame(String s){
super(s);
teacher = new Teacher();
setLayout(new FlowLayout());
textOne = new TextField(10);
textTwo = new TextField(10);
textResult = new TextField(10);
operatorLabel = new Label("+");
message = new Label("你還沒有回答呢");
getProblem = new Button("獲取題目");
giveAnswer = new Button("確認答案");
add(getProblem);
add(textOne);
add(operatorLabel);
add(textTwo);
add(new Label("="));
add(textResult);
add(giveAnswer);
add(message);
textResult.requestFocus();
textOne.setEditable(false);//該方法設定文字框的可編輯性
textTwo.setEditable(false);
getProblem.addActionListener(this);//建立監視器
giveAnswer.addActionListener(this);
textResult.addActionListener(this);
setBounds(100,100,450,100);//設定出現螢幕上時的初始位置
setLocationRelativeTo(null);//居中
setVisible(true);//視窗的可見性
validate();
addWindowFocusListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==getProblem){
int number1 = teacher.giveNumberOne(100);
int number2 = teacher.giveNumberTwo(100);
String operator = teacher.giveOperator();
textOne.setText(""+number1);//設定文字框中為引數字串指定的文字
textTwo.setText(""+number2);
operatorLabel.setText(operator);
message.setText("請回答");
textResult.setText(null);
}
if(e.getSource()==giveAnswer){
String answer = textResult.getText();
try{ int result = Integer.parseInt(answer);
if(teacher.getRight(result)==true){
message.setText("你回答正確");
}
else{
message.setText("你回答錯誤");
}
}
catch(NumberFormatException ex){
message.setText("請輸入數字字元");
}
}
textResult.requestFocus();
validate();
}
}public class MainClass {
public static void main(String[] args) {
ComputerJFrame frame;
frame = new ComputerJFrame("算術測試");
}
}