计时器

问题描述

设计一个图形用户界面的计时器。该计时器显示计时的时间,并有三个按钮:START,表示开始计时;STOP,停止计时;RESET,重置时间。

代码:
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class Main extends JFrame {
JButton jbtStart, jbtStop, jbtReset;
int hour = 0, minute = 0, second = 0;
String time = "0"+hour + ":0" + minute + ":0" + second;
Font font = new Font("TimesRoman", Font.BOLD, 40);
TimePanel timePanel;
Timer timer;public Main() {
timePanel = new TimePanel();
jbtStart = new JButton("Start");
jbtStop = new JButton("Stop");
jbtReset = new JButton("Reset");
jbtStart.addActionListener(new ActionListener() {@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
timer.start();
}});
jbtStop.addActionListener(new ActionListener() {@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
timer.stop();
}});
jbtReset.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
hour = 0;
minute = 0;
second = -1; timer.restart();
}});
JPanel p1 = new JPanel();p1.add(jbtStart);
p1.add(jbtStop);
p1.add(jbtReset);this.add(p1, BorderLayout.SOUTH);
this.add(timePanel, BorderLayout.CENTER);
}class TimePanel extends JPanel {
TimePanel() {
timer = new Timer(100, new ActionListener() {@Override
public void actionPerformed(ActionEvent arg0) {
second++;
if (second > 59) {
second = 0;
minute++;
}
if (minute > 59) {
minute = 0;
hour++;
}
if(second< 10 && hour>=10 && minute>=10)
time = hour + ":" + minute + ":0" + second;
else if(second>= 10 && hour<10 && minute>=10)
time = "0"+hour + ":" + minute + ":" + second;
else if(second>= 10 && hour>=10 && minute<10)
time = +hour + ":0" + minute + ":" + second;
else if(second< 10 && hour<10 && minute<10)
time = "0"+hour + ":0" + minute + ":0" + second;
else if(second< 10 && hour<10 && minute>=10)
time = "0"+hour + ":" + minute + ":0" + second;
else if(second>= 10 && hour<10 && minute<10)
time = "0"+hour + ":0" + minute + ":" + second;
else if(second< 10 && hour>=10 && minute<10)
time = hour + ":0" + minute + ":0" + second;
else
time = hour + ":" + minute + ":" + second;
// TODO Auto-generated method stub
repaint();
}});
}protected void paintComponent(Graphics g) {
super.paintComponent(g);g.setFont(font);
int stringWidth = g.getFontMetrics().stringWidth(time);
int xCoordinate = getWidth() / 2 - stringWidth / 2;
int yCoordinate = getHeight() / 2 + stringWidth / 4;
g.drawString(time, xCoordinate, yCoordinate);
}
}public static void main(String[] args) {
JFrame frame = new Main();
frame.setTitle("Timer");
frame.setSize(400, 200);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}}

转载于:https://www.cnblogs.com/qusay/p/4170265.html

简单的计时器实现(JFrame)相关推荐

  1. 03、三种简单的计时器

    1.计时器在游戏中的使用次数很多,以下是三种简单的计时器写法 2.代码: 1 using System.Collections; 2 using System.Collections.Generic; ...

  2. ios 简单的计时器游戏 NSUserDefaults NSDate NSTimer

    2019独角兽企业重金招聘Python工程师标准>>> 1.NSUserDefaults是应用程序实现过程中只会存在单独一个的对象,故可以用它记录小型的数据如系统偏好设置等 2.初始 ...

  3. python实现一个简单的计时器

    在python编程中,我们经常需要进行对代码的运行时间的基准测试,可以通过python编程写一个简单的计时器程序来实现这样一个过程. class Timer: #@save""&q ...

  4. 【Time系列三】简单的计时器(秒表)

    之前在 "for与while的洪荒之力" 中介绍到计时器,不过那样弄感觉好麻烦啊, 碰巧昨天学Java的时候,讲到求余可以用来求时间 ! for与while链接: http://w ...

  5. Python--26 简单定制 计时器

    TIME模块资料 time 模块 -- 时间获取和转换 time 模块提供各种时间相关的功能 在 Python 中,与时间处理有关的模块包括:time,datetime 以及 calendar 必要说 ...

  6. 简单秒表计时器的制作

    标题 这个简单计时器的功能如下: 1.点击开始,进行计时,此时开始按钮灰度,停止和重置按钮正常运行. 2.点击停止按钮,计时停止,此时停止按钮灰度,开始和重置按钮正常运行. 3.点击重置按钮,无论当前 ...

  7. 简单的计时器,秒表的实现。

    现在每个人的手机上都有一个秒表.我呢,就给大家介绍一下秒表的简单实现原理. 一般秒表有一个显示时间的区域,还有三个键,开始.暂停.复位. 我给大家来介绍的秒表是把开始跟暂停和在一个按键上面的. 下面就 ...

  8. java程序计时器_求完整简单java计时器小程序代码,急!!

    放肆丶小侽人 回答时间:2019-12-05 向TA提问 import java.awt.Button; import java.awt.Color; import java.awt.FlowLayo ...

  9. C#简单的计时器代码

    //开启计时器//计时器System.Timers.Timer t = new System.Timers.Timer();private void StartTimmer(){/*开启计时器改变图片 ...

最新文章

  1. 虚拟机配置自定义静态ip,并能访问外网
  2. Django框架之DRF 认证组件源码分析、权限组件源码分析、频率组件源码分析
  3. 【mybatis】xml中定义变量
  4. 谓词筛选表达式的扩展库PredicateLib
  5. 从WebRtc学习RTCP协议
  6. How can I set ccshared=-fPIC while executing ./configure?
  7. python进阶08并发之四map, apply, map_async, apply_async差异
  8. 机器翻译简史:八十多年来,人类就是要再造一座通天塔
  9. Android:日常学习笔记(7)———探究UI开发(4)
  10. 畅通工程(hdu1863)并查集
  11. java 不同时区时间转换_Java中的时区转换小结
  12. html创建qq注册页面,用javascript制作qq注册动态页面
  13. (附源码)ssm基于JSP的养老院信息管理系统的设计与实现 毕业设计 211141
  14. 微信开发者工具公众号网页调试跨域问题的解决
  15. python之多进程和多协成爬虫
  16. uni-app 使用外部.js文件定义全局变量和全局方法
  17. 网络隔离下的几种数据交换技术比较
  18. js实现图片放大镜效果
  19. 关于vega打不开的问题
  20. 今日头条推荐算法详解(PDF下载)

热门文章

  1. mysql自增主键归零的方法
  2. HDU 3788 ZOJ问题
  3. 马云的移动战略:变革和创新
  4. 照片处理和分享的思路
  5. 一个虐你千百遍的问题:“RPC好,还是RESTful好?”
  6. Python爬虫-HTMLSession的使用
  7. springmvc中action跳转
  8. 《树莓派学习指南(基于Linux)》——第 2 章 开始探索 2.1 欢迎使用LXDE
  9. struts文件异常Included file cannot be found
  10. Java 为什么要用框架?