java(线程)实现一个秒表功能
来源:互联网 发布:知天命之年 编辑:程序博客网 时间:2024/05/09 00:39
import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.NumberFormat;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;public class Miaobiao extends JFrame{ JButton start,pause,stop; JLabel hour,min,sec; Start ss; public static void main(String[] args) { new Miaobiao(); } public Miaobiao(){ /**********Jframe制作一个秒表界面**********/ this.setTitle("秒表"); this.setSize(500, 300); this.setLocationRelativeTo(null); Container c=this.getContentPane(); c.setLayout(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /**********时钟**********/ hour=new JLabel("00"); hour.setBounds(80, 70, 80, 50); hour.setFont(new Font("Consolas", Font.BOLD, 50)); hour.setHorizontalAlignment(JLabel.CENTER); /**********时钟分钟件冒号**********/ JLabel m_1=new JLabel(":"); m_1.setBounds(170, 70, 30, 50); m_1.setFont(new Font("Consolas", Font.BOLD, 50)); /**********分钟**********/ min=new JLabel("00"); min.setBounds(200, 70, 80, 50); min.setFont(new Font("Consolas", Font.BOLD, 50)); min.setHorizontalAlignment(JLabel.CENTER); /**********分钟和秒钟间的冒号**********/ JLabel m_2=new JLabel(":"); m_2.setBounds(290, 70, 30, 50); m_2.setFont(new Font("Consolas", Font.BOLD, 50)); /**********秒钟**********/ sec=new JLabel("00"); sec.setBounds(320, 70, 80, 50); sec.setFont(new Font("Consolas", Font.BOLD, 50)); sec.setHorizontalAlignment(JLabel.CENTER); /**********开始按钮**********/ start=new JButton("开始"); start.setBounds(30, 200, 100, 30); start.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { start.setEnabled(false); stop.setEnabled(true); pause.setEnabled(true); ss=new Start(hour,min,sec); ss.start(); } }); /**********暂停按钮**********/ pause=new JButton("暂停"); pause.setBounds(190, 200, 100, 30); pause.setEnabled(false); pause.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { start.setEnabled(true); stop.setEnabled(true); pause.setEnabled(false); new Pause(ss).start(); } }); /**********结束按钮**********/ stop=new JButton("结束"); stop.setBounds(350, 200, 100, 30); stop.setEnabled(false); stop.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { start.setEnabled(true); stop.setEnabled(false); pause.setEnabled(false); new Pause(ss).start(); sec.setText("00"); min.setText("00"); hour.setText("00"); } }); c.add(start); c.add(pause); c.add(stop); c.add(hour); c.add(m_1); c.add(min); c.add(m_2); c.add(sec); this.setVisible(true); }}class Start extends Thread{ JLabel s,m,h; public Start(JLabel h,JLabel m,JLabel s){ this.h=h; this.m=m; this.s=s; } @Override public void run() { int time_s,time_m,time_h; time_s=Integer.parseInt(s.getText()); time_m=Integer.parseInt(m.getText()); time_h=Integer.parseInt(h.getText()); NumberFormat nf = NumberFormat.getInstance(); //调整时间的输出格式 nf.setMinimumIntegerDigits(2) ; //让时分秒都显示为两位数 while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { break; //如果中断此线程,跳出死循环从而结束线程 } time_s++; if (time_s>=60) { time_m++; time_s=0; //秒钟等于60,分钟加1,秒钟置0 if(time_m>=60){ time_h++; time_m=0; if(time_m>=24){ time_h=0; } } } s.setText(nf.format(time_s)); // 格式化输出 e.g. 0:0:1——>00:00:01 m.setText(nf.format(time_m)); h.setText(nf.format(time_h)); } }}class Pause extends Thread{ Start ss; public Pause(Start ss) { this.ss=ss; } @Override public void run() { ss.interrupt(); }}
“`
0 1
- java(线程)实现一个秒表功能
- java线程方式实现秒表
- 【JAVA】用swing实现的一个秒表
- 秒表功能实现
- Tkinter实现秒表功能
- 实现简易秒表功能
- 单片机实现秒表功能
- 简单的Java秒表计时器(线程)
- 用线程和借口分别实现的Java秒表
- java秒表/计时器实现
- 自定义 View 实现秒表功能
- 在Tkinter实现一个秒表(参照python cookbook)
- Java计时器(秒表)
- 用FPGA实现简易秒表功能
- 秒表功能
- 用线程和接口两种方法实现的java秒表
- 用线程和接口两种方法实现的java秒表
- 用线程和接口两种方法实现的java秒表
- CSS布局 ——从display,position, float属性谈起
- Unity UGUI基础之Button
- EXCEL中引用单元格的绝对引用命令是什么?
- 操作系统面试—虚拟内存
- assign用法探讨
- java(线程)实现一个秒表功能
- 三个白帽之来自星星的你(一)writeup
- Linux 目录结构
- Ubuntu主从同步数据库实现
- iOS库 .a与.framework区别
- 平台记录部件上一条/下一条方法
- JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
- 欢迎使用CSDN-markdown编辑器
- JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐