Java课程设计+文档+源代码(万年历+闹钟+记事本)Word文档下载推荐.doc
《Java课程设计+文档+源代码(万年历+闹钟+记事本)Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《Java课程设计+文档+源代码(万年历+闹钟+记事本)Word文档下载推荐.doc(33页珍藏版)》请在冰豆网上搜索。
NoteBook类实现记事本功能;
CalendarsView类则实现基本日历功能,ChooseDay类是一个弹窗,被CalendarsView调用,CalendarsView、AlarmDemo也在该类被调用;
CalendarMain-----运行
.
newCalendarsView();
CalendarsView
总的框架界面设计布局,日历功能的实现,对其他功能的调用
newAlarmDemo();
newNoteBook();
AlarmDemo
继承Jpanel,运用线程和applet实现闹钟功能,到规定时间播放闹铃
NoteBook
继承Jpanel,运用io,可以保存文本
newChooseDay(null,year,month).setVisible(true);
ChooseDay
继承JDialog,让用户选择看那一年月的日历
4.日历界面使用了jTable,功能的实现逻辑则是
1.首先定义两个全局变量---年和月,查看不同时间的日历,该变量也随之改变。
2.写了几个函数获取今年第一天是星期几,然后根据月份天数即可推算具体某月第一天是星期几。
3.知道一个月第一天是星期几,则该月日历既可以顺序列出。
闹钟的功能实现思路:
1.获取界面设定的时间。
2.使用线程,每过一秒急救获取当前时间,并判断是否到达设定的时间
3.到设定的时间,启动弹窗,播放闹铃
4.闹铃科根据文件选择器自行选择
记事本功能实现思路
1.在项目文件夹先新建一个txt文件作为储存的数据库
2.利用File类和io数据流将界面文本储存进txt文件,实现保存功能
3.每当程序启动,读取txt文件内容并显示到界面上
三、测试分析
1.使用如下拓展包
2.程序界面截图如下
日历主界面
闹钟界面
记事本界面
3.测试流程及功能介绍
(1)
点击上一月、下一月可查看不同月份日历,左下角显示当前时间。
点击蓝色的日期栏可以回到当前页
(2)
点击圈中按钮会出现弹框,可以调节年、月,查看指定年月日历
(3)
闹铃可以使用默认闹铃,也能自定义选择闹铃,不过闹铃格式只能为wav或au
时间到了以后出现弹框,并响起闹铃
(4)
记事本输入文本,按保存即可。
(5)
点击最小化按钮,可以选择普通缩小或者直接缩小到托盘.
附录:
源代码(注:
在工程目录下新建文件夹source,并添加了闹铃文件,txt,托盘图片,如图)
AlarmDemo.java
importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.awt.BorderLayout;
importjava.awt.Dimension;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.File;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjavax.swing.*;
importjavax.swing.text.DefaultFormatterFactory;
importjavax.swing.text.NumberFormatter;
publicclassAlarmDemoextendsJPanelimplementsRunnable{
privatestaticfinallongserialVersionUID=-7066237267822356675L;
Threadalarm;
publicAudioClipsoumd1;
Calendarc=Calendar.getInstance();
JButtonsure=newJButton("
确定"
);
JButtonopen=newJButton("
可选择闹铃"
JLabeljLabel=newJLabel("
设置时间日-时-分"
JLabel.CENTER);
JLabeldayLabel=newJLabel("
日"
JLabelhourLabel=newJLabel("
时"
JLabelminuteLabel=newJLabel("
分"
JPaneljPanel1=newJPanel();
JPaneljPanel2=newJPanel();
JPaneljPanel3=newJPanel();
JPaneljPanel4=newJPanel();
JTextFieldmusic=newJTextField(System.getProperty("
user.dir"
)+"
\\source\\alarm.wav"
inty=0,m=0,h=0,mi=0,d=0;
booleanfo=false;
publicAlarmDemo(){
music.setEditable(false);
//设置标签格式
dayLabel.setFont(newFont("
Dialog"
1,30));
hourLabel.setFont(newFont("
minuteLabel.setFont(newFont("
jLabel.setFont(newFont("
//按钮设置
sure.setContentAreaFilled(false);
sure.setFocusPainted(false);
open.setContentAreaFilled(false);
open.setFocusPainted(false);
JSpinnerspinner1=newJSpinner();
JSpinnerspinner2=newJSpinner();
JSpinnerspinner3=newJSpinner();
spinner3.setModel(newSpinnerNumberModel(c.get(Calendar.DATE),1,31,1));
spinner1.setModel(newSpinnerNumberModel(c.get(Calendar.HOUR_OF_DAY),
0,23,1));
spinner2.setModel(newSpinnerNumberModel(c.get(Calendar.MINUTE),0,59,
1));
//设置属性
setSpinners(spinner1);
setSpinners(spinner2);
setSpinners(spinner3);
jPanel4.add(jLabel);
jPanel4.setPreferredSize(newDimension(500,100));
jPanel1.setLayout(newGridLayout(1,6));
jPanel1.add(spinner3);
jPanel1.add(dayLabel);
jPanel1.add(spinner1);
jPanel1.add(hourLabel);
jPanel1.add(spinner2);
jPanel1.add(minuteLabel);
jPanel1.setPreferredSize(newDimension(500,100));
jPanel2.setLayout(newBorderLayout());
jPanel2.add(jPanel4,BorderLayout.NORTH);
jPanel2.add(music,BorderLayout.CENTER);
jPanel2.add(open,BorderLayout.EAST);
jPanel3.setLayout(newGridLayout(1,1));
jPanel3.add(sure);
setLayout(newBorderLayout());
add(jPanel1,BorderLayout.NORTH);
add(jPanel2,BorderLayout.CENTER);
add(jPanel3,BorderLayout.SOUTH);
open.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevent){
JFileChooserfileChooser=newJFileChooser();
//实例化文件选择器
fileChooser
.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
//设置文件选择模式,此处为文件和目录均可
fileChooser.setCurrentDirectory(newFile("
."
));
//设置文件选择器当前目录
.setFileFilter(newjavax.swing.filechooser.FileFilter(){
publicbooleanaccept(Filefile){//可接受的文件类型
Stringname=file.getName().toLowerCase();