📄 exe_add.java
字号:
/*该程序用于心算练习
* function : 1.人机界面
* 2.产生随机数
* 3.计时功能
* 4.输入并判断输入是否正确
* 5.弹出对话框
* Program name : exe_add
* Version : 1.0
* Programmer : caijie
* Date : 2008.2.3
*/
import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class exe_add {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
JFrame frame = new JFrame("每日心算练习1.0");
frame.add( new HelloComponent4());
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize(250, 350);
frame.setVisible(true);
}
}
class HelloComponent4 extends JComponent
implements MouseMotionListener, ActionListener, Runnable
{
Random random = new Random(); //读取随机数
int num1, num2, num_right, num_input;// 算术中的三个变量,乘数,被乘数,正确结果,输入的结果
int count_right, count_wrong;// 记录正确计算次数和错误次数
JButton theButton1, theButton2;//开始游戏按钮, 确定输入结果按钮
JLabel rangeField1, rangeField2, rangeField_right;//显示被乘数, 乘数,正确结果
JLabel rangeField_result;//用于提示本次计算的结果是否正确
JTextField rangeField_input;//显示输入的结果
boolean flag;
JFrame frame_dia = new JFrame("提示框");// 弹出对话框
int time_num; //标识剩余秒数
/************************可修改部分****************************/
int TIME_NUM = 20;//用于修改计时时间
int CYC_NUM = 10;//几次计算后需要显示一次result
/**********************可修改部分结束*****×*********************/
public HelloComponent4( ) throws Exception {
Box form = Box.createVerticalBox( );
theButton1 = new JButton(" 开始游戏");
form.add( theButton1 );
form.add( new JLabel("被乘数:") );
rangeField1 = new JLabel("0");
form.add(rangeField1);
form.add( new JLabel("乘数:") );
rangeField2 = new JLabel("0");
form.add(rangeField2);
form.add( new JLabel("输入结果:") );
rangeField_input = new JTextField( "0" );
form.add(rangeField_input);
form.add( new JLabel("正确结果:") );
rangeField_right = new JLabel("0");
form.add(rangeField_right);
theButton2 = new JButton(" 确定输入 ");
form.add( theButton2 );
rangeField_result = new JLabel("");
form.add(rangeField_result);
theButton1.addActionListener( this );
theButton2.addActionListener( this );
addMouseMotionListener( this );
setLayout( new FlowLayout( ) );
add( form );
Thread t = new Thread( this );
t.start( );
}
public void push_diag(){
if (count_wrong + count_right == CYC_NUM){
JOptionPane.showMessageDialog(frame_dia, "已完成"+String.valueOf(CYC_NUM)+"次练习,其中成功"+String.valueOf(count_right)+"次,错误"+String.valueOf(count_wrong)+"次" );
count_right = 0;
count_wrong = 0;//计数清零
}
}
public void mouseDragged(MouseEvent e) { }
public void mouseMoved(MouseEvent e) { }
//增加按钮动作后的处理
public void actionPerformed( ActionEvent e )
{
if ( e.getSource( ) == theButton1 && flag == false) {
//按钮动作后,将相应的数据写入变量并送至窗口组件显示
num1 = random.nextInt(100);
num2 = random.nextInt(100);
num_right = num1 * num2;
rangeField1.setText(String.valueOf(num1));
rangeField2.setText(String.valueOf(num2));
rangeField_input.setText("0");
rangeField_right.setText("0");
time_num = TIME_NUM; //规定计算时间
rangeField_result.setText(String.valueOf("倒计时:" + time_num));
flag = true;
}
if ( e.getSource( ) == theButton2 && flag == true) {
//按钮动作后,将相应的数据写入变量并送至窗口组件显示
num_input = Integer.parseInt(rangeField_input.getText( ));
rangeField_right.setText(String.valueOf(num_right));
if (num_right == num_input){
rangeField_result.setText("计算正确");
count_right ++;
}else{
rangeField_result.setText("计算错误");
count_wrong ++;
}
flag = false;
push_diag();
}
}
public void run( ) {
while(true) {
try {
Thread.sleep(1000);
if (flag){
time_num--;
rangeField_result.setText("倒计时:" + String.valueOf(time_num));
if (time_num == 0){
rangeField_result.setText("时间到,计算错误");
rangeField_right.setText(String.valueOf(num_right));
flag = false;
count_wrong ++;
push_diag();
}
}
} catch (Exception exception){}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -