RRROLE 发表于 2021-5-25 22:54:19

GUI 监视器 代码填空

73行到77行代码填空怎么填?getAnswer.add(监视器)不对吗????
package Test2_3Circle;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;


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



class ComputerFrame extends JFrame {
      JMenuBar menubar;
      JMenu choiceGrade; //选择级别的菜单
      JMenuItemgrade1,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);//【代码1】         //创建textOne,其可见字符长是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);
//      【代码2】//将teacherZhang注册为getProblem的ActionEvent事件监视器

//      【代码3】//将teacherZhang注册为giveAnwser的ActionEvent事件监视器
          //giveAnwser.add(teacherZhang);
//      【代码4】//将teacherZhang注册为textResult的ActionEvent事件监视器

            setVisible(true);
            validate();
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
      }
    }


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;//1至maxInteger之间的随机数;
                numberTwo=random.nextInt(maxInteger)+1;
                double d=Math.random(); // 获取(0,1)之间的随机数
                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;
            textTwo=t;
            textResult=t;
      }
      public void setJLabel(JLabel ...label) {
            operatorLabel=label;
            message=label;
      }
    }

RRROLE 发表于 2021-5-25 22:57:01

如图

RRROLE 发表于 2021-5-26 00:48:48

{:10_250:}
页: [1]
查看完整版本: GUI 监视器 代码填空