Java网红10s计时器

Java网红10s计时程序


看到很多小视频有挑战10s免单什么的…
10s
自己用Java也简易实现了一个
效果图

完整代码

比较渣渣,不要介意源码.

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main {

	static boolean tag = false;
	//游戏的开关
	/**
	 * @author Coyamo
	 * 2019-01-03
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame jf = new JFrame("10s大挑战");
		jf.setLayout(new BorderLayout());
		
		JLabel jl = new JLabel("00.0000s");
		JLabel jl2 = new JLabel("按下空格开始与结束");
		JLabel jl3 = new JLabel("");
		
		jf.add("Center", jl);
		jf.add("South", jl2);
		jf.add("North", jl3);
		
		jl.setFont(new Font("宋体", 0, 100));
		
		jf.pack();
		jf.setVisible(true);
		
		jl.setFocusable(true);
		jl.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				super.keyPressed(e);
				//不开线程不能及时更新JLabel
				new Thread(new Runnable() {
					public void run() {
						if (32 == e.getKeyCode()) {
						//32对应空格按钮
							if (tag == false) {
								jl3.setText("");
								count(jl, jl3);
							} else
								tag = !tag;
						}
					}
				}).start();
			}
		});
	}
	
	public static void count(JLabel l, JLabel l2) {
		long s = System.nanoTime();
		//为了更准确用了纳秒...
		tag = true;
		DecimalFormat dc = new DecimalFormat("00.0000");
		String cur = "";
		while (tag) {
			double diff = (System.nanoTime() - s) / Math.pow(10, 9);
			if (diff > 15)
				tag = false;
			cur = dc.format(diff);
			l.setText(cur+"s");
		}
		if (cur.equals("10.0000"))
			l2.setText("挑战成功!");
		else
			l2.setText("挑战失败!");
	}

}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值