`
changer0702
  • 浏览: 27474 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

用swing实现的一个秒表

    博客分类:
  • Java
阅读更多

     学习操作系统课程的时候提到了一个非常重要的概念thread(线程),为了加深理解老师要求课后用java写一个秒表的小程序,经过两个小时的努力终于写完了,界面截图如下所示!

  

    实体类StopWatch

public class StopWatch {
   private int hour;
   private int minute;
   private double second;
   //以一100毫秒为单位设置时间
   public void setTime(float t){
	   hour= (int)t/36000;
       minute = ((int)t-hour*36000)/600;
       second = (t%600)/10.00;  
   }
   public String toString(){
        return String.format("%02d : %02d : %04.1f", hour,minute,second);
   }
}

    GUI类StopWatchGUI

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class StopWatchGUI extends JPanel{
    private JPanel centerPanel;
    private JPanel southPanel;
    private JLabel label;
    private JButton start;
    private JButton stop;
    private JButton reset;
    private boolean flag=false;
    private float   time=0;
    private StopWatch watch;
    public StopWatchGUI(){
    	setSouthPanel();
    	setCenterPanel();
    	this.setLayout(new BorderLayout());
    	this.add(centerPanel,BorderLayout.CENTER);
    	this.add(southPanel,BorderLayout.SOUTH);
    	watch=new StopWatch();
    	new Thread(){
    	     public void run(){
    		while(true){		
    			if(flag){//start the stopWatch
    			    watch.setTime(time);
        			    label.setText(watch.toString());    	
        			   try {
				Thread.sleep(100);
			         } catch (InterruptedException e) {
				e.printStackTrace();
			         }
			     time+=1;
			}
    		}
    	       }
    	}.start();       
    }
    private void setCenterPanel(){
    	centerPanel=new JPanel();
    	label=new JLabel("00 : 00 : 00.0",JLabel.CENTER);
    	label.setFont(new Font("Serif", Font.BOLD, 30));
    	centerPanel.add(label);
    }
    private void setSouthPanel(){
    	southPanel=new JPanel();
    	start=new JButton("Start");
    	stop=new JButton("Stop");
    	reset=new JButton("Reset");
    	start.addActionListener(new StartListener());
    	stop.addActionListener(new StopListener());
    	reset.addActionListener(new ResetListener());
    	southPanel.setLayout(new FlowLayout());
    	southPanel.add(start);
    	southPanel.add(stop);
    	southPanel.add(reset);
    }
    public static void main(String[] args)  {
	JFrame frame=new JFrame("StopWatch");
	frame.setContentPane(new StopWatchGUI());
	frame.setSize(300,120);
	Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
	Dimension frameSize=frame.getSize();
	frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
	frame.setResizable(false);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setVisible(true);
    }
    
    class StartListener implements ActionListener {
          public void actionPerformed(ActionEvent event) {   
	flag=true;
	start.setEnabled(false);
	stop.setEnabled(true);
        	reset.setEnabled(false);
        }
   }
    class StopListener implements ActionListener{
        public void actionPerformed(ActionEvent event) {
            flag=false;
            start.setText("Start");
            start.setEnabled(true);
            reset.setEnabled(true);
            stop.setEnabled(false);
          }	
   }
   class ResetListener implements ActionListener{
          public void actionPerformed(ActionEvent event) {
            flag=false;
            time=0;
            watch.setTime(time);
            label.setText(watch.toString());    
            start.setEnabled(true);
            stop.setEnabled(true);
          }	
   }
}

 

2
0
分享到:
评论

相关推荐

    Java swing秒表

    在这个“Java Swing秒表”项目中,开发者利用Swing组件创建了一个功能丰富的秒表应用,它可以精确地显示时、分、秒以及毫秒,为用户提供实时计时功能。 首先,Swing秒表去掉了窗口的默认修饰,这意味着它可能采用了...

    秒表 JAVA实现 有界面 源码

    在Java中实现秒表功能,我们需要利用Java Swing或JavaFX库来创建GUI,这两个库提供了丰富的组件和工具来构建桌面应用程序。描述中提到的"javaSe"指的是Java Standard Edition,它包含了开发和运行桌面应用的基本Java...

    Java版电子秒表

    对于想要学习Java GUI编程,特别是Swing和多线程的初学者来说,这是一个很好的实践项目。 1. **Java Swing**: Swing是Java Foundation Classes (JFC)的一部分,用于构建图形用户界面(GUI)。它提供了一套丰富的组件...

    同时实现了时钟以及秒表的功能

    本项目主要介绍了如何在Java中创建一个包含时钟和秒表功能的应用程序。该项目使用了Swing库来构建用户界面,并利用多线程技术来实现时间和秒表的实时更新。 #### 二、核心组件介绍 ##### 1. TimeCounting_Thread 类...

    秒表软件设计,Java源代码

    秒表在日常生活中给我们带来了许多的方便,尤其是在体育教学应用得非常广泛,人们常常把这个...该程序是一个图形界面的秒表,主要采用了awt包和swing包提供各种组件,实现了分组记时的功能,使用起来非常的清晰方便。

    数字秒表 课程设计 0:00:00~9分59秒99毫秒

    在本课程设计中,我们将深入探讨如何构建一个功能完备的数字秒表,具备启动、暂停、继续和清零等核心功能,并且计数范围能够覆盖0:00:00至9分59秒99毫秒。 首先,我们要理解数字秒表的工作原理。数字秒表基于微处理...

    秒表 java

    本文将详细解析如何使用Java构建一个简单但功能完善的秒表,特别是针对“超过百秒以ABC表示”这一特殊需求的实现。 #### 1. 导入必要包 在代码片段中,我们首先看到了对Java AWT(Abstract Window Toolkit)和...

    miaobiao.rar_秒表 _秒表设计

    这些库提供了高精度的时间戳,可以用来计算两个时间点之间的差值,进而实现秒表的计时功能。 在设计秒表时,首先要考虑的是用户界面。一个简洁易读的用户界面可以让用户方便地启动、暂停、重置计时。这可能涉及到...

    秒表.....

    在这个上下文中,描述提到的是一个由个人编写的秒表程序,这意味着它可能是一个用Java编程语言实现的软件应用。 Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。编写秒表程序涉及...

    netbeans编译下得秒表小程序

    【描述】描述中的“秒表计时器”是指一个能够精确测量时间间隔的软件工具,类似于体育比赛中使用的秒表。在这个Java程序中,它不仅能够实时显示时间流逝,还特别加入了“计次”功能,这意味着用户可以多次启动和停止...

    miaobiao.rar_java 秒表

    在Java中,我们可以使用内置的`System.currentTimeMillis()`或`System.nanoTime()`方法来创建一个简单的秒表功能。本项目名为“miaobiao.rar”,提供了一个用于学习的Java秒表程序,该程序不仅实现了基本的计时功能...

    javaswing简单源码-stopwatch:这是使用Java和带有NetBeansIDE的Javaswing的秒表应用程序的简单源代码

    在本项目“stopwatch”中,我们看到的是一个简单的秒表应用,使用了Swing和NetBeans IDE来实现。 NetBeans IDE 是一个流行的集成开发环境,特别适合于Java开发。它提供了代码编辑、调试、版本控制和项目管理等多种...

    miaobiao.rar_GUI 暂停 开始_java秒表

    开发者可能使用了诸如JFrame、JButton、JLabel等Swing组件来构建界面,并通过线程管理和时间计算来实现秒表的计时功能。通过学习这个项目,初学者可以加深对Java GUI编程的理解,同时也能掌握如何在实际应用中处理...

    aud.zip_秒表

    接下来,构建这样一个“秒表小炸弹”涉及到以下几个关键点: 1. **用户界面**:用户需要能够设置计时时间并启动/停止计时器。这通常通过简单的图形用户界面(GUI)实现,如按钮和显示时间的文本框。可以使用各种...

    课程设计任务书-数字秒表资料.7z

    在本课程设计任务中,我们将关注的是开发一个数字秒表应用。数字秒表是一种常见的计时工具,尤其在体育赛事、实验室测量以及日常生活中的各种计时需求中广泛应用。设计一个数字秒表涉及到计算机编程、时间处理和用户...

    Java实现的计时器【秒表】功能示例

    在本示例中,我们使用Java的多线程机制来实现计时器功能,通过创建一个独立的线程来执行计时操作。 源代码解析 源代码中,我们首先引入了必要的Java包,包括javax.swing、java.awt等。然后,我们定义了计时器的...

    32 10秒的秒表 (2).zip

    标题中的“32 10秒的秒表 (2).zip”似乎是一个关于计时工具的文件,可能是软件、应用程序或者一个简单的计时脚本。然而,由于标签部分为空,我们无法直接获得与IT知识相关的具体领域信息。从描述“32 10秒的秒表 (2)...

    clock_app_JavaSwing:使用Java Swing的Clock Desktop应用程序,其中包含用于数字和模拟时钟,日历,秒表和倒数计时器的选项卡

    本项目——"clock_app_JavaSwing",是一个利用Java Swing开发的桌面应用程序,它包含了四个功能丰富的模块:数字时钟、模拟时钟、日历和计时器/秒表。 ### 1. 数字时钟与模拟时钟 数字时钟是基于文本或数字显示...

    毕业设计作品_课程设计任务书-数字秒表.rar

    "毕业设计作品_课程设计任务书-数字秒表.rar"这个标题表明这是一个与毕业设计或课程设计相关的项目,具体是关于创建一个数字秒表的应用。"RAR"是文件压缩格式,通常用于打包多个文件或文件夹,便于存储和传输。 ...

Global site tag (gtag.js) - Google Analytics