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. Dbentry4.2连接MSSQL

    Dbentry4.2 连接MSSQL <Leafing.Settings> <add key="DefaultContext" value="mssql ...

  2. 静态TLS和动态TLS

    静态TLS的使用方法: #include <Windows.h> #include <iostream> #include <iomanip> using name ...

  3. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  4. CSS 中的rem,em,vh,vw一次说清楚

    关于css中的长度单位,我们用的最多就是px,因为他简单直接.但是当一套方案匹配不同终端时,px就会显得过于生硬,不容易变通. 然而rem,em,vh,vw就可以有效的解决这一问题.让我们来看看这些东 ...

  5. MySQL 网络访问连接

    查看 /etc/hosts配置文件 [hotspot@bogon ~]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localh ...

  6. Win7桌面底部的任务栏高度的修改

    Win7桌面底部的任务栏高度的修改.. ----------win7中,任务栏比较宽,有些用户的电脑分辨率比较低,就显得非常占地方,这时可将任务设置成窄模式,图标小图标.鼠标移动到状态上,点击右键.- ...

  7. java web面试技巧,数据库面试,java web轻量级开发面试教程

    我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程. 其中不仅用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,而且还实际讲到了面 ...

  8. Unresolved reference issue in PyCharm

    Add src as a source content root: Then make sure to add add sources to your PYTHONPATH: Now imports ...

  9. java-生产者消费者模式

    经常会有公司叫我们手撕代码,比如网易,阿里,那我们是不是该掌握下呢.下面这段代码来自<现代操作系统>进程与线程P49页. public class ProducerConsumer { p ...

  10. 两个大数相乘-Java

    两个字符串表示两个非常大的数,请设计算法计算这两个大数的乘积,结果用字符串表示.例如S1="7832974972840919321747983209327",S2="19 ...