|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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];
- }
- }
复制代码 |
|