2017JAVA课程设计
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课程设计的更多相关文章
- 2017Java课程设计201521123007
1. 课程设计博客链接 项目地址 2. 个人负责模块或任务说明 ps:一个人做的项目 一个登录jsp文件,登录成功转入商品界面, 一个商品jsp文件,显示所有商品信息,数据从MySql数据库导入,可以 ...
- [课程设计]任务进度条&开发日志目录
任务进度条&开发日志目录 周期 时间 任务 Sprint One 11.14 ● Scrum团队分工及明确任务1.0 Sprint One 11.15 ● Scr ...
- 课程设计 --- 黑白棋中的 AI
原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...
- Java课程设计——扫雷(winmine)
因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
- [课程设计]Scrum 1.7 多鱼点餐系统开发进度
[课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...
- [课程设计]Scrum 1.3 多鱼点餐系统开发进度
[课程设计]Scrum 1.3 多鱼点餐系统开发进度 Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...
- [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐
[课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
随机推荐
- vue中使用cropperjs进行图片裁剪上传
下面代码直接就可以复制使用了,但是需要在本地下个cropperjs,下载命令:npm install cropperjs --save-dev <template> <div id= ...
- Leetcode Pasacl'sTriangle
对于Vector的用法,实在是知道的太少,算法思想比较简单,核心也就一行代码,但是实现错误就显示平时代码的不熟悉. Given numRows, generate the first numRows ...
- jvm系列 (三) ---锁的优化
锁的优化 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 jvm系列(三):锁的优化 我的博客目录 锁的四种状态 从低到高,只能升级不能降级 无锁状态 偏向锁 ...
- 【Zookeeper】应用场景
配置的管理在分布式应用环境中很常见,例如同一个应用系统需要多台server运行,但是他们运行的应用系统的某些配置项是相同的,如果要修改这些相同的配置项,那么就必须同时修改每台运行这应用系统的serve ...
- react后台开发框架搭建
最近整理了一下自己在用的react框架,主要涉及到的技术有react react-router redux Es6 webpack less ant-design等技术,可用于快速开发后台类系统. ...
- 4_CSRF
CSRF 当你登录某个网站时,通常浏览器与网站都会形成一个会话,在会话没有结束时你可以执行发表文章.发邮件.删除文章等操作,若会话结束,你再操作的话会提示你会话已经结束,请重新登录.CSRF(客户端跨 ...
- ID3算法(2)
今天,我来讲解的是决策树.对于决策树来说,主要有两种算法:ID3算法和C4.5算法.C4.5算法是 对ID3算法的改进.今天主要先讲ID3算法,之后会讲C4.5算法和随机森林等. Contents ...
- js实现每次程序发送一个数据 ,多次发送不一样,5秒后继续执行多次程序,判断如果五秒后发送过来的数据和上次不一样,少的删除多的增加
/*存储设备ID*/var IDSNew = new Array();//判断是否已经启用服务var isopen = true;//需要放到接收设备数据处IDSNew[client.deviceId ...
- Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...
- h5 测试关注点
原文链接:http://www.blogjava.net/qileilove/archive/2014/07/24/416154.html?utm_source=tuicool&utm_med ...