zoukankan      html  css  js  c++  java
  • Java课程设计-定时器(团队)

    一、团队介绍(没头脑和不高兴)

    • 陈文俊[组长] 201521123047 网络1512 宣委

    • 郑子熙 201521123045 网络1512

    二、项目Git链接

    定时器

    三、项目git提交记录截图

    四、项目功能架构图与主要功能流程图

    五、项目运行截图

    界面

    输入时间

    运行一段时间后暂停

    隐藏倒计时面板

    六、程序关键代码

    public class Time {
    
    	public static String getTime(int seconds) {
    		Integer hours = seconds / 3600;
    		Integer minutes = seconds / 60;
    		Integer second = seconds % 60;
    		String time = "";
    		if (minutes >= 60)
    			minutes %= 60;
    		if (hours < 10)
    			time += "0" + hours + " : ";
    		else
    			time += hours + " : ";
    		if (minutes < 10)
    			time += "0" + minutes + " : ";
    		else
    			time += minutes + " : ";
    		if (second < 10)
    			time += "0" + second;
    		else
    			time += second;
    		return time;
    	}
    
    	public static Integer getSeconds(Integer hours, Integer minutes, Integer seconds) {
    		return hours * 3600 + minutes * 60 + seconds;
    	}
    
    
    public void actionPerformed(ActionEvent e) {
    			if (e.getSource() == btnBegin) {
    				if (tfdHours.getText().equals("") || tfdHours.getText() == null || tfdMinutes.getText().equals("")
    						|| tfdMinutes.getText() == null || tfdSeconds.getText().equals("") || tfdSeconds == null) {
    					JOptionPane.showMessageDialog(null, "请完成倒计时设置", "提示", JOptionPane.PLAIN_MESSAGE);
    				} else {
    					showTime = Time.getSeconds(new Integer(tfdHours.getText()), new Integer(tfdMinutes.getText()),
    							new Integer(tfdSeconds.getText()));
    					setTime = showTime;
    					// 改变面板值
    					labTime.setText(Time.getTime(showTime));
    					labSetTime.setText("计时总秒数 : " + setTime);
    					tfdHours.setText("");
    					tfdMinutes.setText("");
    					tfdSeconds.setText("");
    
    					flag = true;
    					new Thread(this).start();
    				}
    			}
    			if (e.getSource() == btnPause) {
    				flag = false;
    			}
    			if (e.getSource() == btnContinue) {
    				flag = true;
    				new Thread(this).start();
    			}
    			if (e.getSource() == btnHidden) {
    				this.remove(jpShowTime);
    				repaint();
    			}
    			if (e.getSource() == btnShow) {
    				this.add(jpShowTime).setBounds(0, 400, 1200, 400);
    				repaint();
    			}
    			if (e.getSource() == btnExit) {
    				System.exit(-1);
    			}
    		}
    
    		public void run() {
    			while (true) {
    				if (showTime <= 0) {
    					JOptionPane.showMessageDialog(null, "时间到", "提示", JOptionPane.PLAIN_MESSAGE);
    					break;
    				}
    				// 判断暂停
    				if (!flag) {
    					break;
    				}
    				try {
    					Thread.sleep(1000);
    				} catch (InterruptedException e) {
    					e.printStackTrace();
    				}
    				showTime -= 1;
    				labTime.setText(Time.getTime(showTime));
    				labPassTime.setText("已过秒数 : " + (setTime - showTime));
    				labRemainTime.setText("剩余秒数 : " + showTime);
    			}
    		}
    
    		public void keyTyped(KeyEvent e) {
    		}
    
    		public void keyPressed(KeyEvent e) {
    			if (e.getKeyCode() == KeyEvent.VK_F8) {
    				if (tfdHours.getText().equals("") || tfdHours.getText() == null || tfdMinutes.getText().equals("")
    						|| tfdMinutes.getText() == null || tfdSeconds.getText().equals("") || tfdSeconds == null) {
    					JOptionPane.showMessageDialog(null, "请完成倒计时设置", "提示", JOptionPane.PLAIN_MESSAGE);
    				} else {
    					showTime = Time.getSeconds(new Integer(tfdHours.getText()), new Integer(tfdMinutes.getText()),
    							new Integer(tfdSeconds.getText()));
    					setTime = showTime;
    					// 改变面板值
    					labTime.setText(Time.getTime(showTime));
    					labSetTime.setText("计时总秒数 : " + setTime);
    					tfdHours.setText("");
    					tfdMinutes.setText("");
    					tfdSeconds.setText("");
    
    					flag = true;
    					new Thread(this).start();
    				}
    			} else if (e.getKeyCode() == KeyEvent.VK_F9) {
    				flag = false;
    			} else if (e.getKeyCode() == KeyEvent.VK_F10) {
    				flag = true;
    				new Thread(this).start();
    			} else if (e.getKeyCode() == KeyEvent.VK_F11) {
    				this.remove(jpShowTime);
    				repaint();
    			} else if (e.getKeyCode() == KeyEvent.VK_F12) {
    				this.add(jpShowTime).setBounds(0, 400, 1200, 400);
    				repaint();
    			}
    		}
    
    		public void keyReleased(KeyEvent e) {
    		}
    	}
    

    七、尚待改进或者新的想法

    界面可以花时间做得更加美观,还用图标来代替按钮。

    八、团队成员任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长。

    姓名 学号 任务分配 博客地址
    陈文俊[组长] 201521123047 框架构建、时间设置面板、倒计时面板、按钮设置 博客地址
    郑子熙 201521123045 main函数的编写、负责TIme函数的编写、用于计算时间、按钮功能的实现 博客地址
  • 相关阅读:
    序列化
    restfull风格,规范的项目,django-DRF与django的区别
    JWT的应用
    七牛云上传文件
    微博三方登录
    celery原理与使用
    Redis五大数据类型
    图片验证码
    单点登录
    Django Rest Framework JWT
  • 原文地址:https://www.cnblogs.com/chendajia/p/7065730.html
Copyright © 2011-2022 走看看