⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exe_add.java

📁 加法练习
💻 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 + -