我的日常2

日常二:

关于之前单词练习程序的更新

之前程序显示是在console(控制台)里运行的,现在可以单独出来,在文本框中实现运行

新增功能

  1. 计时功能: 因为个人技术问题,还不能将计时功能加入到文本框中将其实现,可能这将在之后更新,或不更新;
  2. 积分功能: 在文本框中显示出当前积分(支持负数),当然,积分的增减值可以在程序中修改;
  3. 错误计数功能: 在文本框中对错误次数进行统计,当错误到一定次数,程序将停止;

源码

import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;

public class Words extends Frame{
    
    
	/**
	 * @throws InterruptedException 
	 * 
	 */
	public static void main(String[] args) throws InterruptedException {
    
    
		
		new Words().start();

		//实现计时
		for (int time = 0; time < 1800; time++) {
    
    
			Thread.sleep(1000);
			System.out.println("时间进行了:"+time);
			if(time == 1200) {
    
    
				System.exit(0);
			}
		}
}

	
	private static final long serialVersionUID = 1L;
	String a[] = {
    
    
//			"ActionListener","Console","final","input","Collection",
//			"Runnable","Prefrences","implements","KeyPressed","LinkedList","mybatis"
			
			"public","static","void","main","Scanner","double","int","short","long",
			"boolean","float","byte","Random","String","class","else","equals",
			"TextField","ActionListener","MouseListener","KeyListener","System","exit",
			"equals","Font","File",
			"TextArea","Console","Library","Context","session","Factory",
			"private","final","clear","close","Array","protected","return","workspace","input","Object",
			"NullpointerException","value","OutOfBounds","Collection",
			"Runnable","database","FileWriter",
			"Runtime","Color","calc","shutdown","notepad","execute","Exception","throws","catch","package",
			"View","Prefrences","InputStream","OutputStream","Socket","path","BufferedImage","extends",
			"implements","abstract","image","Interface","Application","Frame","KeyEvent","KeyPressed","Servlet",
			"Controller","ArrayList","LinkedList",
			"create","table","insert","delete","select","update",
			"sprintMVC","mybatis","spring"
	};
	String b[] = {
    
    
//			"事件监听","控制台","不可更改的","输入","集合",
//			"可执行接口","属性","实现","键盘按下去","Linked数组","持久框架层"
			
			"公开的","静态","返回值","主方法","输入机器人","双精度","整形","短整形","长整形",
			"布尔型","单精度","比特","随机机器人","字符串","类","其他","相等",
			"文本框","事件监听","鼠标监听","键盘监听","系统","退出",
			"相同","字体","文件",
			"文本域","控制台","jar包存放位","上下文","会话","工厂",
			"私有的","不可更改的","清空","关闭","数组","半公开的","返回","工作空间","输入","java程序老大",
			"空指针","值","越界","集合",
			"可执行接口","数据库","文件写入器",
			"运行","颜色","计算器","关机命令","记事本","执行","异常","抛(异常)","捕获(异常)","包",
			"视图","属性","输入流","输出流","网络客户端","路径","图片(缓冲格式)","继承",
			"实现","抽象","图片(普通格式)","接口","应用","界面","键盘适配信息","键盘按下去","后端Servlet编程",
			"控制器","Array数组","Linked数组",
			"创建","表格","添加","删除","查询","修改",
			"显示框架层","持久框架层","业务层框架"
	};
	
	int count = 0;
	int cuo = 0;
	Random rd = new Random();		//随机产生
//	int i = 0;						//遍历产生
	int i = rd.nextInt(a.length);
	TextField tf = new TextField();	//设置文本框
	
	public void start() {
    
    
		addWindowListener(new WindowAdapter() {
    
    
			@Override
			public void windowClosing(WindowEvent e) {
    
    
				System.exit(0);
			}
		});
		setSize(800,800);		//设置窗口大小
		setVisible(true); 		//显示窗口
		setLayout(null);		//取消默认布局
		tf.setBounds(270,350,300,45);	//设置文本框的位置
		add(tf);
		Font f = new Font("杨",28,28);	//新建字体
		tf.setFont(f);
		tf.addActionListener(new ActionListener() {
    
    
			public void actionPerformed(ActionEvent e) {
    
    
				if(count>=200) {
    
    
					System.out.println("成功!");
					System.exit(0);		//程序结束
				}
				if(cuo>=5) {
    
    
					System.out.println("菜鸡!你错了5次");
					System.exit(0);		//程序结束
				}
//				if(i>=a.length-1) i = 0; 		//遍历中,遍历到最后返回第一个单词
				
				String s1 = tf.getText();  //获取用户输入的文字
				if(s1.equals(a[i])) {
    
    
//					i++;		//遍历数组
					i = rd.nextInt(a.length);		//随机数组
					repaint(); //重画,刷新
					tf.setText(null);	//清空文本框
					count++;
				} else {
    
    
					count-=10;
					cuo++;
					repaint(); //重画,刷新
					tf.setText(null);	//清空文本框
				}
			}
		});

	}

	public void paint(Graphics g) {
    
    
		
		Font f = new Font("杨",32,32);	//新建字体 
		g.setFont(f);
		//设置判断,当前100时显示中文,当100后不显示中文
		if(count <= 0) {
    
    
			g.drawString(a[i]+"--"+b[i], 300, 250); 	//撰写文字
//			
		} else {
    
    
			g.drawString(b[i], 300, 250); 	//撰写文字
		}
		
		
		
		g.drawString("当前分数:"+count, 500, 100);		//积分
		g.drawString("你 错 了 :"+cuo+"次", 500, 135);
		
		Font t = new Font("杨",22,22);	//新建字体 
		g.setFont(t);
		g.drawString(">提示< 当前规则为写对得1分,写错扣10分,500分满分", 50, 700);
		
	}
}

猜你喜欢

转载自blog.csdn.net/muyi_upup/article/details/110356261