1.团队课程设计博客链接

http://www.cnblogs.com/ltykm/p/7063663.html

2.个人负责模块或任务说明

本人任务:定时器具体功能的实现

3.自己的代码提交记录截图

4.自己负责模块或任务详细说明

实现定时器倒计时开始,暂停,继续,隐藏,显示功能的实现以及通过键盘对相关功能的操作。

        // 显示计时详细信息
    void createTimeInfo() {
        jpTimeInfo = new JPanel();
        jpTimeInfo.setLayout(null);
        jpTimeInfo.setBackground(new Color(154, 217, 250));
        jpTimeInfo.setSize(1200, 100);
        // 总秒数
        labSetTime = new JLabel("计时总秒数 : ", JLabel.CENTER);
        labSetTime.setFont(new Font("微软雅黑", 0, 20));
        jpTimeInfo.add(labSetTime).setBounds(0, 10, 400, 80);
        // 已过秒数
        labPassTime = new JLabel("已过秒数 : ", JLabel.CENTER);
        labPassTime.setFont(new Font("微软雅黑", 0, 20));
        jpTimeInfo.add(labPassTime).setBounds(400, 10, 400, 80);
        // 剩余秒数
        labRemainTime = new JLabel("剩余秒数 : ", JLabel.CENTER);
        labRemainTime.setFont(new Font("微软雅黑", 0, 20));
        jpTimeInfo.add(labRemainTime).setBounds(800, 10, 400, 80);

        jpSetting.add(jpTimeInfo).setBounds(0, 300, 1200, 100);
    }

    // 按钮监听
    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) {
    }
}
    }

   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;
}

}

5.课程设计感想

2017JAVA课程设计的更多相关文章

  1. 2017Java课程设计201521123007

    1. 课程设计博客链接 项目地址 2. 个人负责模块或任务说明 ps:一个人做的项目 一个登录jsp文件,登录成功转入商品界面, 一个商品jsp文件,显示所有商品信息,数据从MySql数据库导入,可以 ...

  2. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  3. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  4. Java课程设计——扫雷(winmine)

    因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...

  5. [课程设计]Scrum 1.6 多鱼点餐系统开发进度

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  6. [课程设计]Scrum 1.7 多鱼点餐系统开发进度

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

  7. [课程设计]Scrum 1.3 多鱼点餐系统开发进度

    [课程设计]Scrum 1.3 多鱼点餐系统开发进度   Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...

  8. [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐

    [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...

  9. [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

随机推荐

  1. ajax轮询实时获取数据

    最近做一个评论功能时,想要实现实时异步刷新评论功能,于是使用了ajax轮询,这里简单记录一下ajax轮询的原理及使用方法. ajax轮询的原理就是客户端定时向服务端发送ajax请求,服务器接到请求后马 ...

  2. Spring Data Jpa+SpringMVC+Jquery.pagination.js实现分页

    本博客介绍基于Spring Data这款orm框架加上Jquery.pagination插件实现的分页功能. 介绍一下Spring Data框架 spring Data : Spring 的一个子项目 ...

  3. vue.js实现瀑布流之vue-waterfall-easy

    想必大家应该很多都已经习惯了jquery的DOM操作,jquery的瀑布流实现起来也很容易. 但是,随着时代的发展,随着时代的进步..... 算了算了,扯远了,既然能找到这儿来,肯定是在vue.js上 ...

  4. shell 多进程

    shell 多进程来模拟多线程 (1){ } 建立代码块 (2)使用 & 将进程放入后台 [zheng@localhost ~]$ cat threads.sh #!/bin/bash ;i& ...

  5. 并发是个什么鬼之同步工具类CountDownLatch

    扯淡 写这篇文章,我先酝酿一下,实不相瞒,脱离底层太久了,更确切的情况是,真没曾认真研究过.就目前来说,很多框架包括工具类已经把实现封装的很深,你只需轻轻的调用一下API,便不费半点力气.以至于大家会 ...

  6. 在Linux环境下搭建Tomcat+mysql+jdk环境

    按照下面的步骤一步一步来搭建tomcat+jdk+mysql环境.   [Linux环境]------我搭建的是64位centos版本的linux系统 1.下载并安装一个VMware workstat ...

  7. 初识SVN-版本控制工具

    慕课网安装教程链接:http://www.imooc.com/video/1924

  8. switch_to 家族

    selenium做自动化的过程中,经常会遇到alert.frame和新的window,这是经常是switch_to家族大展拳脚的时候,先看看switch_to家族的成员: alert --返回浏览器的 ...

  9. mvc中html导出成word下载-简单粗暴方式

    由于工作需求,需要把html简历页导出成word下载.网上搜索了很多解决方案,基本都是用一些插件,然后写法也很麻烦,需要创建模板什么的. 固定替换值  代码一大堆.但是对于我的需求来说  并没有什么用 ...

  10. mysql中group by 的用法解析

    1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 假设现有数据库表如下 ...