- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java课程设计文档源代码(万年历闹钟记事本)剖析
2015年12月18日
一、课程题目
设计一个万年历系统,实现以下功能
(1)可以查看当前的年份、月份和日期;
(2)有时间栏,便于用户查看当前时间;
(3)能够查找1至9999年的日期与星期的关系。
其它功能可自行开发。
二、题目分析与设计
1.使用的开发环境为 eclipse
Jdk环境: jdk1.8
2. (此为万年历界面图)
使用了 jTabbedPane 类 对功能页面分页,布局策略基本用BorderLayout 和GridLayout 。
本项共有5个类,基本一个功能有一个类实现,主类 CalendarMain 只包含一个main函数:对创建框架和其属性设置。
AlarmDemo类 则实现闹钟功能;NoteBook 类实现记事本功能;CalendarsView 类 则实现基本日历功能,ChooseDay 类 是一个弹窗,被CalendarsView 调用,CalendarsView 、AlarmDemo 也在该类被调用;
.
new CalendarsView();
new AlarmDemo(); new NoteBook();
newChooseDay(null, year, month).setVisible(true);
日历界面使用了 jTable ,功能的实现逻辑则是
1.首先定义两个全局变量---年和月,查看不同时间的日历,该变量也随之改变。
写了几个函数获取今年第一天是星期几,然后根据月份天数即可推算具体某月第一天是星期几。
知道一个月第一天是星期几,则该月日历既可以顺序列出。
闹钟的功能实现思路:
获取界面设定的时间。
使用线程,每过一秒急救获取当前时间,并判断是否到达设定的时间
到设定的时间,启动弹窗,播放闹铃
闹铃科根据文件选择器自行选择
记事本功能实现思路
在项目文件夹先新建一个txt文件作为储存的数据库
利用File 类 和io 数据流将界面文本储存进txt文件,实现保存功能
每当程序启动,读取txt文件内容并显示到界面上
三、测试分析
1.使用如下拓展包
程序界面截图如下
日历主界面
闹钟界面
记事本界面
测试流程及功能介绍
(1)
点击上一月、下一月可查看不同月份日历,左下角显示当前时间。点击蓝色的日期栏可以回到当前页
(2)
点击圈中按钮会出现弹框,可以调节年、月,查看指定年月日历
(3)
闹铃可以使用默认闹铃,也能自定义选择闹铃,不过闹铃格式只能为wav或au
时间到了以后出现弹框 ,并响起闹铃
(4)
记事本输入文本,按保存即可。
(5)
点击最小化按钮,可以选择普通缩小或者直接缩小到托盘.
附录:源代码(注:在工程目录下新建文件夹 source ,并添加了闹铃文件,txt,托盘图片,如图)
AlarmDemo.java
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.*;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
public class AlarmDemo extends JPanel implements Runnable {
private static final long serialVersionUID = -7066237267822356675L;
Thread alarm;
public AudioClip soumd1;
Calendar c = Calendar.getInstance();
JButton sure = new JButton(确定);
JButton open = new JButton(可选择闹铃);
JLabel jLabel = new JLabel(设置 时间 日-时-分, JLabel.CENTER);
JLabel dayLa
文档评论(0)