我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。
扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。
推荐文章:Java 面试知识点解析;Mysql优化技巧(数据库设计、命名规范、索引优化

https://blog.csdn.net/c_jian/article/details/50506759

应用名称:Java计时器

用到的知识:Java GUI编程

开发环境:win8+eclipse+jdk1.8

功能说明:计时功能,精确到1毫秒,可暂停。

效果图:

源代码:

import javax.swing.*;  import java.awt.HeadlessException;  import java.awt.BorderLayout;  import java.awt.FlowLayout;  import java.awt.Font;  import java.awt.event.ActionListener;  import java.awt.event.ActionEvent;  /** * 计时器 */  public class Timer extends JFrame {  /**     * */private static final long serialVersionUID = 1L;private static final String INITIAL_LABEL_TEXT = "00:00:00 000";  // 计数线程  private CountingThread thread = new CountingThread();  // 记录程序开始时间  private long programStart = System.currentTimeMillis();  // 程序一开始就是暂停的  private long pauseStart = programStart;  // 程序暂停的总时间  private long pauseCount = 0;  private JLabel label = new JLabel(INITIAL_LABEL_TEXT);  private JButton startPauseButton = new JButton("开始");  private JButton resetButton = new JButton("清零");  private ActionListener startPauseButtonListener = new ActionListener() {  public void actionPerformed(ActionEvent e) {  if (thread.stopped) {  pauseCount += (System.currentTimeMillis() - pauseStart);  thread.stopped = false;  startPauseButton.setText("暂停");  } else {  pauseStart = System.currentTimeMillis();  thread.stopped = true;  startPauseButton.setText("继续");  }  }  };  private ActionListener resetButtonListener = new ActionListener() {  public void actionPerformed(ActionEvent e) {  pauseStart = programStart;  pauseCount = 0;  thread.stopped = true;  label.setText(INITIAL_LABEL_TEXT);  startPauseButton.setText("开始");  }  };  public Timer(String title) throws HeadlessException {  super(title);  setDefaultCloseOperation(EXIT_ON_CLOSE);  setLocation(300, 300);  setResizable(false);  setupBorder();  setupLabel();  setupButtonsPanel();  startPauseButton.addActionListener(startPauseButtonListener);  resetButton.addActionListener(resetButtonListener);  thread.start(); // 计数线程一直就运行着      }  // 为窗体面板添加边框  private void setupBorder() {  JPanel contentPane = new JPanel(new BorderLayout());  contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));  this.setContentPane(contentPane);  }  // 配置按钮  private void setupButtonsPanel() {  JPanel panel = new JPanel(new FlowLayout());  panel.add(startPauseButton);  panel.add(resetButton);  add(panel, BorderLayout.SOUTH);  }  // 配置标签  private void setupLabel() {  label.setHorizontalAlignment(SwingConstants.CENTER);  label.setFont(new Font(label.getFont().getName(), label.getFont().getStyle(), 40));  this.add(label, BorderLayout.CENTER);  }  // 程序入口  public static void main(String[] args) {  try {  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  } catch (Exception e) {  e.printStackTrace();  }  Timer frame = new Timer("计时器");  frame.pack();  frame.setVisible(true);  }  private class CountingThread extends Thread {  public boolean stopped = true;  private CountingThread() {  setDaemon(true);  }  @Override  public void run() {  while (true) {  if (!stopped) {  long elapsed = System.currentTimeMillis() - programStart - pauseCount;  label.setText(format(elapsed));  }  try {  sleep(1);  // 1毫秒更新一次显示} catch (InterruptedException e) {  e.printStackTrace();  System.exit(1);  }  }  }  // 将毫秒数格式化  private String format(long elapsed) {  int hour, minute, second, milli;  milli = (int) (elapsed % 1000);  elapsed = elapsed / 1000;  second = (int) (elapsed % 60);  elapsed = elapsed / 60;  minute = (int) (elapsed % 60);  elapsed = elapsed / 60;  hour = (int) (elapsed % 60);  return String.format("%02d:%02d:%02d %03d", hour, minute, second, milli);  }  }  }  

转载:https://www.cnblogs.com/yxdmoodoo/p/9244635.html

推荐内容:
java 三种工厂模式
Java修行之路
Java面试题(二)
BATJ面试必会之Java IO 篇
Java面试集合(三)
[JAVA实现]微信公众号网页授权登录
Java入门篇(四)——数组
Java多线程同步问题:一个小Demo完全搞懂
java后端实习生面试题目
java面试题总结

【Java】Java计时器(秒表),java基础面试笔试题相关推荐

  1. 分享18道Java基础面试笔试题

    转载自 分享18道Java基础面试笔试题(面试实拍) 1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求? 2.请简述http协议中get请求和post请求的区别. 3.请简 ...

  2. Java 基础面试题,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  3. java log4j基本配置及日志级别配置详解,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  4. java实现回溯算法,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  5. Java集合框架之四大接口、常用实现类,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  6. Java分布式锁看这篇就够了,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. Java学习资源整理(超级全面),java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  8. java,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  9. Java 8 基础教程 - Predicate,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

最新文章

  1. 分享一个牛逼的阿里天猫面经,已经拿到 Offer ,来自朋友的朋友
  2. Acwing第 30 场周赛【完结】
  3. java access group by_sql – 在Access中连接记录和GROUP BY
  4. linux学习笔记:1.基础知识和命令行基本操作
  5. JavaFX中的塔防(4)
  6. css 控制图片最大宽度
  7. 【转】WPF自定义控件与样式(3)-TextBox RichTextBox PasswordBox样式、水印、Label标签、功能扩展...
  8. 【Elasticsearch】Elasticsearch-Hadoop打通Elasticsearch和Hadoop
  9. c++ string类型转换为char *类型
  10. 问题及解决 —— 浏览器问题
  11. 让你的 Linux 远离黑客(二):另外三个建议
  12. JAVA Web基础3-Servlet
  13. mysql sql语句 编辑器_三个非常实用的开源SQL编辑器
  14. 软件的行业适配性:进销存软件与五金行业
  15. 企业微信开发之判断当前入口是PC端企业微信还是PC端浏览器。或者是APP端企业微信
  16. mysql数据库输出数据语法错误_MySQL数据库定义存储过程总是报语法错误的解决方法...
  17. iOS安全-测试内容
  18. 阿里云——专有网络VPC
  19. 《手机拍照与视频》那点事
  20. vc不支援此种界接口_护肤圈人人在夸的“早C晚A”,做完功课后我发现:不一定适合你!...

热门文章

  1. 庆五一,We7同步发行2.5正式版、2.6 Beta版!
  2. β射线与哪些物质可产生较高的韧致辐射_什么是α射线、β射线、γ射线
  3. la是什么牌子_La Prairie
  4. Intel Pin架构
  5. 消费者Heartbeat分析
  6. 探究Lucene计算权重的过程
  7. python 添加图片_python3 tkinter添加图片和文本
  8. 1014.QxORM移植
  9. leecode-3无重复字符串的最长子字符串C版-滑动窗口
  10. python3默认编码标准是_python3 编码