Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc

上传人:聆听****声音 文档编号:3587107 上传时间:2023-05-02 格式:DOC 页数:33 大小:550.20KB
下载 相关 举报
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第1页
第1页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第2页
第2页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第3页
第3页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第4页
第4页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第5页
第5页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第6页
第6页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第7页
第7页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第8页
第8页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第9页
第9页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第10页
第10页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第11页
第11页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第12页
第12页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第13页
第13页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第14页
第14页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第15页
第15页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第16页
第16页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第17页
第17页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第18页
第18页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第19页
第19页 / 共33页
Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc

《Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc》由会员分享,可在线阅读,更多相关《Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc(33页珍藏版)》请在冰点文库上搜索。

Java课程设计+文档+源代码(万年历+闹钟+记事本)文档格式.doc

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();

returnname.endsWith("

.wav"

||name.endsWith("

.au"

||file.isDirectory();

}

publicStringgetDescription(){//文件描述

return"

音乐文件(*.wav,*.au)"

;

});

if(fileChooser.showOpenDialog(AlarmDemo.this)==JFileChooser.APPROVE_OPTION){//弹出文件选择器,并判断是否点击了打开按钮

StringfileName=fileChooser.getSelectedFile()

.getAbsolutePath();

//得到选择文件或目录的绝对路径

music.setText(fileName);

}

}

});

sure.addActionListener(newActionListener(){

if(sure.getText().equals("

)){

try{

d=(int)spinner3.getValue();

h=(int)spinner1.getValue();

mi=(int)spinner2.getValue();

if(1<

=d&

&

d<

=31&

0<

=h&

h<

=23&

=mi

&

mi<

=59){

fo=true;

jLabel.setText("

设置闹钟成功"

spinner1.setEnabled(false);

spinner2.setEnabled(false);

spinner3.setEnabled(false);

start();

}else

JOptionPane.showMessageDialog(null,"

输入时间错误"

}catch(Exceptione){

JOptionPane.showMessageDialog(null,"

请输入正确的时间"

}

}else{

spinner1.setEnabled(true);

spinner2.setEnabled(true);

spinner3.setEnabled(true);

fo=false;

stop();

soumd1.stop();

sure.setText("

jLabel.setText("

}

publicvoidstart(){

if(alarm==null){

alarm=newThread(this);

alarm.start();

}

publicvoidstop()//停止线程

{

alarm=null;

publicvoidrun(){

while(true){

Datenow=newDate();

if(fo){

sure.setText("

关闭"

SimpleDateFormatri=newSimpleDateFormat("

dd"

//封装为了获取日期

SimpleDateFormatshi=newSimpleDateFormat("

kk"

//封装为了获取小时

SimpleDateFormatfen=newSimpleDateFormat("

mm"

//封装为了获取分

intriqi=Integer.parseInt(ri.format(now));

//获取日期

intshizhong=Integer.parseInt(shi.format(now));

//获取小时

intfenzhong=Integer.parseInt(fen.format(now));

//获取分钟

if(riqi==d&

shizhong==h&

fenzhong==mi)//判断条件

{

soumd1=Applet.newAudioClip(newFile(music.getText())

.toURL());

//播放音乐

soumd1.loop();

fo=false;

时间到了!

(⊙v⊙)"

e.printStackTrace();

try{

Thread.sleep(1000);

}catch(InterruptedExceptionie){

publicvoidsetSpinners(JSpinnerspinner){

JSpinner.NumberEditoreditor=newJSpinner.NumberEditor(spinner,"

0"

spinner.setEditor(editor);

JFormattedTextFieldtextField=((JSpinner.NumberEditor)spinner

.getEditor()).getTextField();

textField.setFont(newFont("

1,45));

textField.setEditable(true);

DefaultFormatterFactoryfactory=(DefaultFormatterFactory)textField

.getFormatterFactory();

NumberFormatterformatter=(NumberFormatter)factory

.getDefaultFormatter();

formatter.setAllowsInvalid(false);

}

CalendarsView.java

importjava.awt.AWTException;

importjava.awt.Color;

importjava.awt.Frame;

importjava.awt.SystemTray;

importjava.awt.TrayIcon;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.io.IOException;

importjavax.imageio.ImageIO;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JTabbedPane;

importjavax.swing.JTable;

importjavax.swing.Timer;

importjavax.swing.table.DefaultTableModel;

publicclassCalendarsViewextendsJFrame{

privatestaticfinallongserialVersionUID=1L;

staticCalendarc=Calendar.getInstance();

staticintyear=c.get(Calendar.YEAR);

staticintmonth=c.get(Calendar.MONTH)+1;

intmonthday=0;

String[]weekdaystr={"

星期日"

"

星期一"

星期二"

星期三"

星期四"

星期五"

星期六"

};

Object[][]monthview=newString[6][7];

JPaneldayPanel=newJPanel();

JPanelpanel1=newJPanel();

JPanelcalPanel=newJPanel();

JPanelalarmDemo=newAlarmDemo();

JPanelnoteBook=newNoteBook();

JTabbedPanejTabbedPane=newJTabbedPane(JTabbedPane.TOP);

JButtonPrebutton=newJButton("

上一月"

JButtonNextbutton=newJButton("

下一月"

JButtonPreYear=newJButton("

上一年"

JButtonNextYear=newJButton("

下一年"

JButtonChange=newJButton(c.get(Calendar.YEAR)+"

年"

+(c.get(Calendar.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2