Java codeimport java.awt.*;

import java.awt.event.*;

import java.text.SimpleDateFormat;

import java.util.*;

import javax.swing.*;

import javax.swing.border.*;

public class TestTimePiece extends JFrame {

ControlPanel controlPane = null; //-----------------控制面板

JTextField jTextField;

public TestTimePiece() {

super();

init();

}

private void init() {

controlPane = new ControlPanel(this);

add(controlPane);

setPreferredSize(new Dimension(300, 170));

pack();

setVisible(true);

setResizable(false);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

addKeyListener(new TimePieceKeyListener());

}

public static void main(String[] args) {

new TestTimePiece();

;

}

class TimePieceKeyListener extends KeyAdapter {

public void keyReleased(KeyEvent e) {

controlPane.keyReleased(e);

}

}

}

class ControlPanel extends JPanel {

private JFrame snakeFrame = null;

JLabel jLabel,jLabel1, jLabel2, jLabel3, jLabel4;

Date dateWhenStartJpanel;//保存程序启动时的时间

Date dateWhenClickF5;

Thread thread ;

public ControlPanel(JFrame snakeFrame) {

super();

this.snakeFrame = snakeFrame;

init();

}

private void init() {

dateWhenStartJpanel = new Date();

setSize(608, 31);

setBackground(Color.WHITE);

setLayout(new FlowLayout());

setBorder(new LineBorder(Color.white, 5));

setLayout(new FlowLayout());

jLabel = new JLabel();

jLabel1 = new JLabel();

jLabel2 = new JLabel();

jLabel3 = new JLabel();

jLabel4 = new JLabel();

add(jLabel);

add(jLabel1);

add(jLabel2);

add(jLabel3);

add(jLabel4);

jLabel.setText("F5:开始计时 F6:停止计时");

}

public void keyReleased(KeyEvent e) {

int keyCode = e.getKeyCode();

if (keyCode == KeyEvent.VK_F5) {

dateWhenClickF5 = new Date();//sava time when click F5

thread = new Thread(new TimePieceRunnable())

;thread.start();

} else if (keyCode == KeyEvent.VK_F6) {

if(thread != null)thread.stop();

else prompt("请先按F5");

}

}

class TimePieceRunnable implements Runnable {

public void run() {

while (true) {

Date tempDate = new Date();

String tempString = formateToTime(tempDate, "现在时间是 E kk:mm:ss:");

jLabel1.setText(tempString);

tempString = formateToTime(dateWhenStartJpanel,

"启动程序时间是 E kk:mm:ss:");

jLabel2.setText(tempString);

tempString = formateToTime(dateWhenClickF5,

"最近一次按动F5时间是 E kk:mm:ss:");

jLabel3.setText(tempString);

tempDate = getMillisOfTimeDifference(dateWhenClickF5, tempDate);

tempString = formateToTime(tempDate,

"最近一次按动F5到现在的时间差是 kk:mm:ss:");

jLabel4.setText(tempString);

try {

repaint();

Thread.sleep(100);每隔0.1秒刷新一次

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

public String formateToTime(Date date, String timeRegex) {

//Date date = new Date();

//SimpleDateFormat f = new SimpleDateFormat("'BeiJing Time':yyyy年MM月dd日 E kk时mm分ss秒");

SimpleDateFormat f = new SimpleDateFormat(timeRegex);

String newTypeDate = f.format(date);

return newTypeDate;

}

public Date getMillisOfTimeDifference(Date date1, Date date2) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

long timelnMillis1 = calendar.getTimeInMillis();

calendar.setTime(date2);

long timelnMillis2 = calendar.getTimeInMillis();

calendar.setTimeInMillis(timelnMillis2 - timelnMillis1);

return calendar.getTime();

}

private static int prompt(String promptMessage) {

return JOptionPane.showConfirmDialog(null, promptMessage, "友情提示",

JOptionPane.WARNING_MESSAGE);

}

}

java 按钮键盘,java中关于键盘代替按钮的一些有关问题(是代替)~相关推荐

  1. android 方形按钮代码,Android中实现图文并茂的按钮实例代码

    效果图如下所示: 代码: android:orientation="horizontal" android:layout_width="match_parent" ...

  2. ios 表情符号 键盘_iOS中表情键盘的完整实现方法详解

    前言 最近在公司做了个表情键盘的需求,这个需求的技术难度不会很大,比较偏向业务.但是要把用户体验做的好也是不容易的,其中有几个点需要特别注意.话不多说,下面开始正文(注:本文对应的Demo放在Gith ...

  3. android设置多个按钮,android代码中设置两个按钮之间位置

    package com.example.helloworld01;//包名 import java.util.ArrayList; import java.util.List; import andr ...

  4. html提交重置按钮居中,html中如何让提交按钮居中?

    IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐.其他浏览器中,text-align:center仅作用于行内内容上. 解决这个问题比较好的方式,就是为所有需 ...

  5. ios键盘通知和自定义键盘

    一.键盘通知 当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘.成为firstres ...

  6. 二年级计算机认识键盘教案,《认识键盘》教学设计

    <认识键盘>教学设计 发布者:谭理文     所属单位:开州区岳溪镇中心小学     发布时间:2016-10-29    浏览数:0 一.教学目标 [知识与技能]: 1.了解键盘的四个分 ...

  7. java怎么设置多个输入_Java中从键盘输入多个整数的方法

    Java中从键盘输入多个整数的方法 发布于 2020-4-2| 复制链接 分享一篇关于Java中从键盘输入多个整数的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小妖过来看看吧 例题:求数列的 ...

  8. 在java中通过过键盘输入_java中从键盘输入

    控制台输入数据 1.1 主方法的形式参数 在 Java 中利用 main(Str... Java中获取键盘输入值的三种方法 2012-11-13 00:00比特网悠虎关键字:Java 程序开发过程中, ...

  9. java语言中实现键盘输入_Java程序设计中的键盘输入数据的方法分析

    1. 引言 高校中很多学校开设了Java语言程序设计课程,这是一门实践性很强的语言,在程序设计中经常需要从键盘随机输入所需要的数据,Java语言中的键盘输入数据没有像C语言给我们提供的scanf(), ...

最新文章

  1. 第1章统计学习方法概论之1.1统计学习
  2. uboot小工具之mkimage
  3. 浙江大数据交易中心正式上线
  4. hadoop-0.21.0 在Windows环境下的部署(1)Cygwin 安装
  5. c语言编程继承例子,C语言模拟实现C++的继承与多态示例
  6. 使用JasperReport+iReport进行Web报表开发
  7. visual studio粘贴html代码.会自行添加一些未知代码(自动格式化)
  8. c#如何取得事件注册的方法
  9. C# 静态变量及静态函数
  10. 杂项:grunt-tmod
  11. matlab单点弦截法求解,弦截法求根c语言
  12. 数字中国 · 青云科技:数字化转型过程中企业如何用好云计算?
  13. 计算机显卡的性能参数,关于电脑显卡的技术参数与性能的关系
  14. 告别LiveServer,vscode微软官方的LivePreview来了
  15. NIPS2022 | 港大最新Sparse2Dense:通用点云3D检测稠密模块!
  16. 火车头连接mysql_火车头如何进行数据库配置管理
  17. VUE3对比VUE2的优势及新特性原理
  18. BGP的路由黑洞和防环
  19. 双系统中删除linux(win7适用)
  20. CSS中文字体英文名称 宋体-simsun

热门文章

  1. ScriptManager控件声明的各个部分
  2. 经典教材《模式识别和机器学习》官方免费下载!
  3. 最清晰的讲解各种梯度下降法原理与Dropout
  4. 作为程序员必须要掌握的三种语言
  5. 全双工和半双工的区别
  6. python中的序列总结:列表,元组,字符串
  7. mysql php commit_php mysqli_autocommit()使用实例
  8. 006_FastDFS文件上传
  9. 025_Jedis集群
  10. 013_下载静态资源