鱼C论坛

 找回密码
 立即注册
查看: 4787|回复: 2

GUI 监视器 代码填空

[复制链接]
发表于 2021-5-25 22:54:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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


  6.     public class MainClass {
  7.         public static void main(String args[]) {
  8.             ComputerFrame frame;
  9.             frame=new ComputerFrame();
  10.             frame.setTitle("算术测试");
  11.             frame.setBounds(100,100,650,180);
  12.         }
  13.     }



  14. class ComputerFrame extends JFrame {
  15.         JMenuBar menubar;
  16.         JMenu choiceGrade; //选择级别的菜单
  17.         JMenuItem  grade1,grade2;
  18.         JTextField textOne,textTwo,textResult;
  19.         JButton getProblem,giveAnwser;
  20.         JLabel operatorLabel,message;
  21.         Teacher teacherZhang;
  22.         ComputerFrame() {
  23.             teacherZhang=new Teacher();
  24.             teacherZhang.setMaxInteger(20);
  25.             setLayout(new FlowLayout());
  26.             menubar = new JMenuBar();
  27.             choiceGrade = new JMenu("选择级别");
  28.             grade1 = new JMenuItem("幼儿级别");
  29.             grade2 = new JMenuItem("儿童级别");
  30.             grade1.addActionListener(new ActionListener() {
  31.                 public void actionPerformed(ActionEvent e) {
  32.                     teacherZhang.setMaxInteger(10);
  33.                 }
  34.             });
  35.             grade2.addActionListener(new ActionListener() {
  36.                 public void actionPerformed(ActionEvent e) {
  37.                     teacherZhang.setMaxInteger(50);
  38.                 }
  39.             });
  40.             choiceGrade.add(grade1);
  41.             choiceGrade.add(grade2);
  42.             menubar.add(choiceGrade);
  43.             setJMenuBar(menubar);
  44.             textOne =new JTextField(5);//【代码1】           //创建textOne,其可见字符长是5
  45.             textTwo=new JTextField(5);
  46.             textResult=new JTextField(5);
  47.             operatorLabel=new JLabel("+");
  48.             operatorLabel.setFont(new Font("Arial",Font.BOLD,20));
  49.             message=new JLabel("你还没有回答呢");
  50.             getProblem=new JButton("获取题目");
  51.             giveAnwser=new JButton("确认答案");
  52.             add(getProblem);
  53.             add(textOne);
  54.             add(operatorLabel);
  55.             add(textTwo);
  56.             add(new JLabel("="));
  57.             add(textResult);
  58.             add(giveAnwser);
  59.             add(message);
  60.             textResult.requestFocus();
  61.             textOne.setEditable(false);
  62.             textTwo.setEditable(false);
  63.             getProblem.setActionCommand("getProblem");
  64.             textResult.setActionCommand("answer");
  65.             giveAnwser.setActionCommand("answer");
  66.             teacherZhang.setJTextField(textOne,textTwo,textResult);
  67.             teacherZhang.setJLabel(operatorLabel,message);
  68. //      【代码2】//将teacherZhang注册为getProblem的ActionEvent事件监视器

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

  72.             setVisible(true);
  73.             validate();
  74.             setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  75.         }
  76.     }


  77.   class Teacher implements ActionListener {
  78.         int numberOne,numberTwo;
  79.         String operator="";
  80.         boolean isRight;
  81.         Random random;  //用于给出随机数
  82.         int maxInteger;  //题目中最大的整数
  83.         JTextField textOne,textTwo,textResult;
  84.         JLabel operatorLabel,message;
  85.         Teacher() {
  86.             random = new Random();
  87.         }
  88.         public void setMaxInteger(int n) {
  89.             maxInteger=n;
  90.         }
  91.         public void actionPerformed(ActionEvent e) {
  92.             String str = e.getActionCommand();
  93.             if(str.equals("getProblem")) {
  94.                 numberOne = random.nextInt(maxInteger)+1;//1至maxInteger之间的随机数;
  95.                 numberTwo=random.nextInt(maxInteger)+1;
  96.                 double d=Math.random(); // 获取(0,1)之间的随机数
  97.                 if(d>=0.5)
  98.                     operator="+";
  99.                 else
  100.                     operator="-";
  101.                 textOne.setText(""+numberOne);
  102.                 textTwo.setText(""+numberTwo);
  103.                 operatorLabel.setText(operator);
  104.                 message.setText("请回答");
  105.                 textResult.setText(null);
  106.             }
  107.             else if(str.equals("answer")) {
  108.                 String answer=textResult.getText();
  109.                 try{  int result=Integer.parseInt(answer);
  110.                     if(operator.equals("+")){
  111.                         if(result==numberOne+numberTwo)
  112.                             message.setText("你回答正确");
  113.                         else
  114.                             message.setText("你回答错误");
  115.                     }
  116.                     else if(operator.equals("-")){
  117.                         if(result==numberOne-numberTwo)
  118.                             message.setText("你回答正确");
  119.                         else
  120.                             message.setText("你回答错误");
  121.                     }
  122.                 }
  123.                 catch(NumberFormatException ex) {
  124.                     message.setText("请输入数字字符");
  125.                 }
  126.             }
  127.         }
  128.         public void setJTextField(JTextField ... t) {
  129.             textOne=t[0];
  130.             textTwo=t[1];
  131.             textResult=t[2];
  132.         }
  133.         public void setJLabel(JLabel ...label) {
  134.             operatorLabel=label[0];
  135.             message=label[1];
  136.         }
  137.     }

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-25 22:57:01 | 显示全部楼层
如图
实验7.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-26 00:48:48 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-15 11:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表