一段无聊的键盘触发模拟抽卡程序

最近一直接触的都是B/S 、C/S模式的项目,触发程序的入口一般都是在页面上进行了某项操作,触发后台代码进行执行,数据通过数据库查询。

今天早上我突然想起来,刚学java的时候是通过控制台交换数据的,也就是通过System.in,于是我突然想重温一下,于是我写了个无聊的抽卡检验人品程序。

一开始我是这样写的:


import java.text.DecimalFormat;
import java.util.Scanner;

public class scannerTest {

	public static void main(String args[]) {

		System.out.println("请输入:");
		Scanner sc = new Scanner(System.in);
		String psaaWord = sc.next();
		int i=1;
		while(!"exit".endsWith(psaaWord)) {
			int random = (int) (Math.random() * 1000);
			if (random > 0 && random <= 17) {
				System.out.println("震惊震惊,ssr!");
				double jilv=1/(double)i*100;
				DecimalFormat df = new DecimalFormat("0.0");
				String temp=df.format(jilv);
				
				System.out.println("第"+i+"次抽到,概率为:"+temp+"%");
				break;
			} else if (random > 17 && random <= 217) {
				System.out.println("呵呵,sr!");
			} else if (random > 217 && random < 517) {
				System.out.println("嘞,s!");
			} else {
				System.out.println("r");
			}
			System.out.println("===============");
			i=i+1;
			psaaWord = sc.next();
		}
		System.out.println("结束!");
	}
}

写完之后我跑了一下,思考了一会,我这是要干啥嘞?这个东西它根本不需要输入什么东西啊,它只需要触发执行而已啊。

于是我想了会,这种情况下,用键盘监控事件是比较合理的。

于是我改了我的代码。

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class keyReleasedTest extends JFrame  {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public keyReleasedTest() {
		super("请开始抽卡,氪金才能变强!");  
		// 注册键盘监听
		addKeyListener(new KeyAdapter() {
			int i=1;
			public void keyPressed(KeyEvent ke) {
				//不想玩可以中途按ESC退出
				if(ke.getKeyCode()==27){
					if(i>1){
						System.out.println(i-1+"次都不出ssr,不玩了!");
					}
					System.exit(0);
				}
				int random = (int) (Math.random() * 1000);
				if (random > 0 && random <= 17) {
					System.out.println("震惊震惊,ssr!");
					double jilv=1/(double)i*100;
					DecimalFormat df = new DecimalFormat("0.0");
					String temp=df.format(jilv);
					
					System.out.println("第"+i+"次抽到,概率为:"+temp+"%");
					System.exit(0);
				} else if (random > 17 && random <= 217) {
					System.out.println(i+".呵呵,sr!");
				} else if (random > 217 && random < 517) {
					System.out.println(i+".嘞,s!");
				} else {
					System.out.println(i+".r!");
				}
				i=i+1;

				//System.out.println("The char is:" + ke.getKeyChar()+ke.getKeyCode());
			}
		});
		// 注册窗口监听
		setSize(300, 300);//监听窗口大小
		setVisible(true);//是否显示
		setLocation(100,100);//坐标
		//Image img=getToolkit().getImage("C:/Users/Lenovo/Desktop/只发图不说话.jpg");
		//setIconImage(img);//设置右上角图标
		
		
        String path = "C:/Users/Lenovo/Desktop/只发图不说话.jpg";  
        // 背景图片  
        ImageIcon background = new ImageIcon(path);  
        // 把背景图片显示在一个标签里面  
        JLabel label = new JLabel(background);  
        // 把标签的大小位置设置为图片刚好填充整个面板  
        label.setBounds(0, 0, this.getWidth(), this.getHeight());  
        // 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明  
        JPanel imagePanel = (JPanel) this.getContentPane();  
        imagePanel.setOpaque(false);  
        // 把背景图片添加到分层窗格的最底层作为背景  
        this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
	}

	public static void main(String[] args) {

		new keyReleasedTest();
	}
}
这个键盘监听程序设置了一个窗口,我觉得太单调,又给他加了个背景图片,实现主要是继承了 JFrame类。

这样的话只要随便按一下键盘就触发了,不像前面的那样,要在控制台输入没用的内容,中途按esc可以退出。

之前也没怎么接触过键盘监控,写的比较粗糙,基本上实现了一个无聊的抽卡测人品的小方法吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值