鱼C论坛

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

GUI 监视器 代码填空

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

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

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

x
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; //选择级别的菜单
        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);//【代码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[0];
            textTwo=t[1];
            textResult=t[2];
        }
        public void setJLabel(JLabel ...label) {
            operatorLabel=label[0];
            message=label[1];
        }
    }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-25 22:57:01 | 显示全部楼层
如图
实验7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-26 00:48:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 23:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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