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. Inno Setup

    Inno Setup 是一款免费的window是安装制作软件,在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件.安装程序用编译脚本(.iss)的方式创建,脚本为类似.ini文件格式的 ...

  2. 网络与WEB 编程

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Helvetica; color: #29556f } 作为客户端与HTTP 服务交互 问题: ...

  3. 50个Java多线程面试题(上)

    Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎.大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发.调试.优化经验 ...

  4. 【Weblogic】启动命令nohup解析

    nohup ./startWebLogic.sh >out.log 2>&1 & 解析 其中 0.1.2分别代表如下含义: 0 – stdin (standard inpu ...

  5. django开发总结

    首先我用的是虚拟机,python3.6+django1.11.0: 为了版本的一致,以及在环境种更好的体验,我们需要的是先用虚拟环境virtualenv其命令有: 1.创建环境(name是虚拟环境名字 ...

  6. Effective Java通俗理解(下)

    Effective Java通俗理解(上) 第31条:用实例域代替序数 枚举类型有一个ordinal方法,它范围该常量的序数从0开始,不建议使用这个方法,因为这不能很好地对枚举进行维护,正确应该是利用 ...

  7. BestCoder Round #34_1002 以及 hdu 5191

    枚举最终的W堆积木在哪,确定了区间,那么就需要把高于H的拿走,低于H的补上,高处的积木放到矮的上面,这样最优. 注意多出来的积木可以放在已有积木的前面或者后面,独立成一堆积木,所以需要在n堆积木的前后 ...

  8. mysql简单主从复制(一)

    MYSQL简单主从复制 master:172.25.44.1 slave:172.25.44.2 mysql5.7安装 master和slave均操作 准备rpm包:mysql-5.7.17-1.el ...

  9. webservice中jaxws:server 和jaxws:endpoint的区别

    今天在学习使用spring+cxf发布webservice时遇到个问题,我原来是用 <jaxws:endpoint id="helloWorld" implementor=& ...

  10. struts.xml如何加载到及配置问题

    今天项目做客户化处理,看到struts.xml,突然间想不起来这个文件从哪里加载的了,真是越学越回去了.这里记录下. web工程启动的时候,系统会加载web.xml文件,在这个时候会加载Spring的 ...