算术测试

public class MainClass{
public static void main(String args[]){
  ComputerFrame frame;
  frame=new ComputerFrame();
  frame.setTitle("算术测试");
  frame.setBounds(100,100,650,180);
  }
}

import java .awt.*;

import java.awt.event.*;

import javax.swing.*;
public class ComputerFrame extends JFrame{
   JMenuBar menubar;
   JMenu choiceGrade;
   JMenuItem grade1,grade2;
   JTextField textOne,textTwo,textResult;

   JButton getProblem,giveAnwser;
   JLabel operatorLabel,message;
   Teacher teacherZhang;
   ComputerFrame(){
      teacherZhang=new Teacher();
      teacherZhang.setMaxInteger(20);
      setLayout(new FlowLayout());
      menubar=new JMenuBar();
      choiceGrade=new JMenu("选择级别");
      grade1=new JMenuItem("幼儿级别");
      grade2=new JMenuItem("儿童级别");

      grade1.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
            teacherZhang.setMaxInteger(10);
         }
       });
      grade2.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
            teacherZhang.setMaxInteger(50);
         }
       });
     choiceGrade.add(grade1);

     choiceGrade.add(grade2);
     menubar.add(choiceGrade);
     setJMenuBar(menubar);
     textOne=new JTextField(5);
     textTwo=new JTextField(5);
     textResult=new JTextField(5);
     operatorLabel=new JLabel("+");
     operatorLabel.setFont(new Font("Arial",Font.BOLD,20));

     message=new JLabel("你还没有回答呢");
     getProblem=new JButton("获取题目");
     giveAnwser=new JButton("确定答案");
     add(getProblem);
     add(textOne);
     add(operatorLabel);
     add(textTwo);
     add(new JLabel("="));
     add(textResult);
     add(giveAnwser);
     add(message);
     textResult.requestFocus();
     textOne.setEditable(false);
     textTwo.setEditable(false);
     getProblem.setActionCommand("getProblem");
     textResult.setActionCommand("answer");
     giveAnwser.setActionCommand("answer");
     teacherZhang.setJTextField(textOne,textTwo,textResult);
     teacherZhang.setJLabel(operatorLabel,message);
     getProblem.addActionListener(teacherZhang);
     giveAnwser.addActionListener(teacherZhang);
     textResult.addActionListener(teacherZhang);
     setVisible(true);
     validate();
     setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  }
}

import java.util.Random;
import java.awt.event.*;
import javax.swing.*;
public class Teacher implements ActionListener{
   int numberOne,numberTwo;
   String operator="";
   boolean isRight;
   Random random;
   int maxInteger;
   JTextField textOne,textTwo,textResult;
   JLabel operatorLabel,message;
   Teacher(){
      random=new Random();
   }
   public void setMaxInteger(int n){
      maxInteger=n;
   }
   public void actionPerformed(ActionEvent e){
      String str=e.getActionCommand();
      if(str.equals("getProblem")){
         numberOne=random.nextInt(maxInteger)+1;
         numberTwo=random.nextInt(maxInteger)+1;
         double d=Math.random();
         if(d>=0.5)
            operator="+";
         else
            operator="-";
         textOne.setText(""+numberOne);
         textTwo.setText(""+numberTwo);
         operatorLabel.setText(operator);
         message.setText("请回答");
         textResult.setText(null);
       }
        else if(str.equals("answer")){
            String answer=textResult.getText();
            try{   int result=Integer.parseInt(answer);
                   if(operator.equals("+")){
                     if(result==numberOne+numberTwo)
                        message.setText("你回答正确");
                     else
                        message.setText("你回答错误");
                   }
                   else if(operator.equals("-")){
                    if(result==numberOne-numberTwo)
                        message.setText("你回答正确");
                    else
                        message.setText("你回答错误");
                   }
                   }
            catch(NumberFormatException ex){
                message.setText("请输入数字字符");
                }
        }
   }
   public void setJTextField(JTextField...t){
      textOne=t[0];
      textTwo=t[1];
      textResult=t[2];
      }
   public void setJLabel(JLabel...label){
      operatorLabel=label[0];
      message=label[1];
      }
}
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值