JAVA课程设计报告.docx
- 文档编号:8161295
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:37
- 大小:126.77KB
JAVA课程设计报告.docx
《JAVA课程设计报告.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计报告.docx(37页珍藏版)》请在冰豆网上搜索。
JAVA课程设计报告
Java课程设计报告
题目日历记事本
所在院系 管理学院
学生姓名李建国专业R信管
班级R信管09-2班学号22
2011年7月14日
第一章总体设计
1.1本系统的主要功能
本系统主要功能是日记本,并且通过日历的方式记录日记,在进入日记本主界面前,有一个欢迎界面。
该系统还实现了对日记的打印,和删除。
也能对以前创建的日记进行查看,显示当前的日期。
1.2系统包含的类及类之间的关系
本系统共包括5个java源文件。
如图1-1所示。
图1-1类之间的关系
2.2java源文件及其功能
//1.Main.java
//该文件为该系统的源文件,是一个欢迎界面,并且起到了进入日历记事本的功能。
importjava.awt.TextField;
importjava.io.*;
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.Timer;
importjava.awt.geom.*;
importjava.util.*;
importjava.awt.BorderLayout;
importjava.awt.CardLayout;
importjava.awt.Color;
importjava.awt.Container;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.util.Calendar;
importjavax.swing.*;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JPanel;
publicclassMainextendsFrameimplementsActionListener
{/**
*
*/
privatestaticfinallongserialVersionUID=-1805873342285018876L;
inta,b,c;
WindowButtonGame;
CalendarPad开始=null;
MenuBarbar;
MenufileMenu1,fileMenu2;
MenuItemitem1,item2,item3;
Labella;
publicMain()
{
la=newLabel("欢迎使用李建国日历",Label.CENTER);
la.setBackground(Color.green);
la.setForeground(Color.red);
la.setFont(newFont("欢迎使用李建国日历",Font.BOLD,24));
Framewin=newFrame();
item1=newMenuItem("进入日历记事本");
bar=newMenuBar();
fileMenu1=newMenu("菜单选项");
item2=newMenuItem("小游戏");
fileMenu2=newMenu("查看日志");
item3=newMenuItem("打开");
fileMenu2.add(item3);
fileMenu1.add(item1);
fileMenu1.add(item2);
bar.add(fileMenu1);
bar.add(fileMenu2);
win.setMenuBar(bar);
win.add(la,BorderLayout.CENTER);
win.setVisible(true);
win.addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
});
win.setSize(246,280);
item1.addActionListener(this);
item2.addActionListener(this);
win.validate();
Calendarcalendar=Calendar.getInstance();
a=calendar.get(Calendar.YEAR);
b=calendar.get(Calendar.MONTH)+1;
c=calendar.get(Calendar.DAY_OF_MONTH);
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
});
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==item1)
{
开始=newCalendarPad(a,b,c);
开始.setVisible(true);
}
if(e.getSource()==item2)
{Game=newWindowButton("小游戏");
Game.setVisible(true);}
}
publicstaticvoidmain(Stringargs[])
{
Mainwin=newMain();
}
}
//2.CalenderPad.java
//该文件创建日历记事本
classCalendarPadextendsJFrameimplementsMouseListener,ActionListener
{
intyear,month,day;
Hashtablehashtable;//保存日志的的散列表
Filefile;
JTextFieldshowDay[];
JLabeltitle[];
Calendar日历;
int星期几;
NotePadnotepad=null;
PrintJobp=null;//声明一个PrintJob对象。
Graphicsg=null;
Month负责改变月;
Year负责改变年;
String星期[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
JPanelleftPanel,rightPanel;
JButtonprint=newJButton("显示当天日期");
JButtonmm=newJButton("打印日志");
publicCalendarPad(intyear,intmonth,intday)
{
leftPanel=newJPanel();
JPanelleftCenter=newJPanel();
JPanelleftNorth=newJPanel();
leftCenter.setLayout(newGridLayout(7,7));
rightPanel=newJPanel();
this.year=year;
this.month=month;
this.day=day;
负责改变年=newYear(this);
负责改变年.setYear(year);
负责改变月=newMonth(this);
负责改变月.setMonth(month);
JPanelpanel1=newJPanel();
panel1.add(print);//自己的面板
panel1.add(mm);
title=newJLabel[7];
showDay=newJTextField[42];
for(intj=0;j<7;j++)
{
title[j]=newJLabel();
title[j].setText(星期[j]);
title[j].setBorder(BorderFactory.createRaisedBevelBorder());
leftCenter.add(title[j]);
}
title[0].setForeground(Color.red);
title[6].setForeground(Color.blue);
for(inti=0;i<42;i++)
{
showDay[i]=newJTextField();
showDay[i].addMouseListener(this);
showDay[i].setEditable(false);
leftCenter.add(showDay[i]);
}
日历=Calendar.getInstance();
Boxbox=Box.createHorizontalBox();
box.add(负责改变年);
box.add(负责改变月);
leftNorth.add(box);
leftPanel.setLayout(newBorderLayout());
leftPanel.add(leftNorth,BorderLayout.NORTH);
leftPanel.add(leftCenter,BorderLayout.CENTER);
leftPanel.add(panel1,BorderLayout.SOUTH);
leftPanel.validate();
Containercon=getContentPane();
JSplitPanesplit=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,
leftPanel,rightPanel);
con.add(split,BorderLayout.CENTER);
con.validate();
hashtable=newHashtable();//散列表
file=newFile("日历记事本.txt");
if(!
file.exists())
{
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(hashtable);
objectOut.close();
out.close();
}
catch(IOExceptione)
{
}
}
notepad=newNotePad(this);
rightPanel.add(notepad);
print.addActionListener(this);
mm.addActionListener(this);
设置日历牌(year,month);
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
});
setVisible(true);
setBounds(100,50,524,285);
validate();
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==print)/*回到当天*/
{inta,b,c;
Calendarcalendar=Calendar.getInstance();
a=calendar.get(Calendar.YEAR);
b=calendar.get(Calendar.MONTH)+1;
c=calendar.get(Calendar.DAY_OF_MONTH);
日历.set(a,b-1,1);
星期几=日历.get(Calendar.DAY_OF_WEEK)-1;
if(b==1||b==3||b==5||b==7
||b==8||b==10||b==12)
{
排列号码(星期几,31,c);
}
elseif(b==4||b==6||b==9||b==11)
{
排列号码(星期几,30,c);
}
elseif(b==2)
{
if((a%4==0&&a%100!
=0)||(a%400==0))
{
排列号码(星期几,29,c);
}
else
{
排列号码(星期几,28,c);
}
}
负责改变年.setYear(a);
负责改变月.setMonth(b);
notepad.设置信息条(a,b,c);
}
elseif(e.getSource()==mm)/*打印*/
{p=getToolkit().getPrintJob(this,"ok",null);
g=p.getGraphics();
g.translate(120,200);
notepad.text.printAll(g);
g.dispose();
p.end();
}
}
publicvoid设置日历牌(intyear,intmonth)
{
日历.set(year,month-1,1);
星期几=日历.get(Calendar.DAY_OF_WEEK)-1;
if(month==1||month==3||month==5||month==7
||month==8||month==10||month==12)
{
排列号码(星期几,31);
}
elseif(month==4||month==6||month==9||month==11)
{
排列号码(星期几,30);
}
elseif(month==2)
{
if((year%4==0&&year%100!
=0)||(year%400==0))
{
排列号码(星期几,29);
}
else
{
排列号码(星期几,28);
}
}
}
publicvoid设置日历牌(intyear,intmonth,intday)
{
日历.set(year,month-1,1);
星期几=日历.get(Calendar.DAY_OF_WEEK)-1;
if(month==1||month==3||month==5||month==7
||month==8||month==10||month==12)
{
排列号码(星期几,31,day);
}
elseif(month==4||month==6||month==9||month==11)
{
排列号码(星期几,30,day);
}
elseif(month==2)
{
if((year%4==0&&year%100!
=0)||(year%400==0))
{
排列号码(星期几,29,day);
}
else
{
排列号码(星期几,28,day);
}
}
}
publicvoid排列号码(int星期几,int月天数)
{
for(inti=星期几,n=1;i<星期几+月天数;i++)
{
showDay[i].setText(""+n);
if(n==day)
{
showDay[i].setForeground(Color.green);
showDay[i].setFont(newFont("TimesRoman",Font.BOLD,12));
}
else
{
showDay[i].setFont(newFont("TimesRoman",Font.BOLD,12));
showDay[i].setForeground(Color.black);
}
n++;
}
for(inti=0;i<星期几;i++)
{
showDay[i].setText("");
}
for(inti=星期几+月天数;i<42;i++)
{
showDay[i].setText("");
}
}
publicvoid排列号码(int星期几,int月天数,intday)
{
for(inti=星期几,n=1;i<星期几+月天数;i++)
{
showDay[i].setText(""+n);
if(n==day)
{
showDay[i].setForeground(Color.green);
showDay[i].setFont(newFont("TimesRoman",Font.BOLD,12));
}
else
{
showDay[i].setFont(newFont("TimesRoman",Font.BOLD,12));
showDay[i].setForeground(Color.black);
}
n++;
}
for(inti=0;i<星期几;i++)
{
showDay[i].setText("");
}
for(inti=星期几+月天数;i<42;i++)
{
showDay[i].setText("");
}
}
publicintgetYear()
{
returnyear;
}
publicvoidsetYear(inty)
{
year=y;
notepad.setYear(year);
}
publicintgetMonth()
{
returnmonth;
}
publicvoidsetMonth(intm)
{
month=m;
notepad.setMonth(month);
}
publicintgetDay()
{
returnday;
}
publicvoidsetDay(intd)
{
day=d;
notepad.setDay(day);
}
publicHashtablegetHashtable()
{
returnhashtable;
}
publicFilegetFile()
{
returnfile;
}
publicvoidmousePressed(MouseEvente)
{
JTextFieldsource=(JTextField)e.getSource();
try{
day=Integer.parseInt(source.getText());
notepad.setDay(day);
notepad.设置信息条(year,month,day);
notepad.设置文本区(null);
notepad.获取日志内容(year,month,day);
}
catch(Exceptionee)
{
}
}
publicvoidmouseClicked(MouseEvente)
{
}
publicvoidmouseReleased(MouseEvente)
{
}
publicvoidmouseEntered(MouseEvente)
{
}
publicvoidmouseExited(MouseEvente)
{
}
}
//3.WindowButton.java
//该文件实现玩小游戏
classWindowButtonextendsJFrameimplementsActionListener
{intnumber;
Label提示条;
TextField输入框;
ButtonbuttonGetNumber,buttonEnter;
WindowButton(Strings)
{super(s);
setLayout(newFlowLayout());
buttonGetNumber=newButton("得到一个随机数");
add(buttonGetNumber);
提示条=newLabel("输入你的猜测:
",Label.CENTER);
提示条.setBackground(Color.cyan);
输入框=newTextField("0",10);
add(提示条);
add(输入框);
buttonEnter=newButton("确定");
add(buttonEnter);
buttonEnter.addActionListener(this);
buttonGetNumber.addActionListener(this);
setBounds(100,100,150,150);
setVisible(true);
validate();
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==buttonGetNumber)
{number=(int)(Math.random()*100)+1;
提示条.setText("输入你的猜测:
");
}
elseif(e.getSource()==buttonEnter)
{intguess=0;
try{guess=Integer.parseInt(输入框.getText())
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 报告