您的位置:首页 > 编程语言 > Java开发

Java实训——创建一个窗体程序,实现简单的数学加、减法测试。

2017-11-11 11:04 1001 查看
实训要求:



代码:

MainClass类:

public class MainClass {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ComputerFrame frame;
frame=new ComputerFrame();
frame.setTitle("算数测试");
frame.setBounds(300,400,650,180);
}
}


ComputerFrame类:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ComputerFrame extends JFrame{
JTextField textOne,textTwo,textResult;
JButton getProblem,giveAnswer;
JLabel operatorLabel,message;
Teacher teacherZhang;
ComputerFrame(){
teacherZhang=new Teacher();
teacherZhang.setMaxInteger(100);
setLayout(new FlowLayout());
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("获取题目");
giveAnswer=new JButton("确认答案");
add(textOne);
add(operatorLabel);
add(textTwo);
add(new JLabel("="));
add(textResult);
add(giveAnswer);
add(message);
add(getProblem);
textResult.requestFocus();
textOne.setEditable(false);
textTwo.setEditable(false);
getProblem.setActionCommand("getProblem");
textResult.setActionCommand("answer");
giveAnswer.setActionCommand("answer");
teacherZhang.setJTextField(textOne,textTwo,textResult);
teacherZhang.setJLabel(operatorLabel,message);
getProblem.addActionListener(teacherZhang);
giveAnswer.addActionListener(teacherZhang);
textResult.addActionListener(teacherZhang);
setVisible(true);
validate();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}


Teacher类:

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(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];
}
}


运行结果:



小结:
学习了监视器的使用方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 编程语言
相关文章推荐