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. C++构造函数初始化列表与赋值

    C++中类的初始化操作一般有四个部分组成: 1.构造函数初始化列表 2.构造函数体内赋值 3.类外部初始化 4.类声明时直接赋值 对于内部数据类型(char,int,float...),构造函数初始化 ...

  2. 会话控制cookie和session

    Cookie Cookie简介 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分中两次请求是否由一个客户端发出.这样的设计严重阻碍的Web程序的设计.如:在我们进行网购时, ...

  3. webpack入门篇--1.简单介绍

    简单介绍: webpack是一个模块打包工具,给js准备的打包工具,可以把很多的模块打包成很少的文件 目标: 1.切分依赖数,分到不同代码块里,按需加载,懒加 载 2.任何静态资源都可以被视为一个模块 ...

  4. Fiddler简介

    官网:http://www.telerik.com/fiddler Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的HTTP通讯,设置断点,查看所有的" ...

  5. MarkdownPad2之安装破解

    MarkdownPad2之安装破解 一.下载破解版 1.地址链接:http://pan.baidu.com/s/1i5JzG13 密码: 4jgw 2.按步骤安装后,进行汉化:[Tool]--> ...

  6. 第11天:JS中变量、字符串基础知识

    一.js简介用来制作页面交互效果,提高用户体验. js页面效果:轮播图.选项卡.地图.表单验证javascript是弱变量类型的语言,变量只需要用var来声明.而java要根据变 量类型来声明, in ...

  7. jenkins 时区设置

    背景 直接搭建好jenkins没有留意时间这块,执行job的时候发现,执行时间和服务器时间不对,需要设置时区 步骤 找到jenkins的启动配置,centos在: /etc/sysconfig/jen ...

  8. CAD快捷键命令

    符号键(CTRL开头) CTRL+1 PROPCLOSEOROPEN 对象特性管理器 CTRL+2或4 ADCENTER 设计中心 CTRL+3 CTOOLPALETTES 工具选项板 CTRL+8或 ...

  9. latex 插图排版

    LaTeX的图片插入及排版   LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文 ...

  10. 最大流dinic模板

    循环版,点的编号从0开始: ; ; const int INF = 0x3f3f3f3f; struct Edge { int to, next, cap, flow; }edge[MAXM]; in ...