java课程设计基于java的万年历设计与实现附源代码贯Word格式.docx
- 文档编号:15078538
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:13
- 大小:27.72KB
java课程设计基于java的万年历设计与实现附源代码贯Word格式.docx
《java课程设计基于java的万年历设计与实现附源代码贯Word格式.docx》由会员分享,可在线阅读,更多相关《java课程设计基于java的万年历设计与实现附源代码贯Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
这次课程设计我主要研究了利用已学的Java知识编辑一个电子万年历。
通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。
并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。
2、需求分析:
2.1、本程序要求:
1、使用图形用户界面;
2、本程序能够实现日期与星期查询,同时显示此时的时间。
2.2、功能设计:
本程序要构建万年历程序,其功能如下:
(1)通过窗口形式运行,实现界面功能;
(2)以月历的形式来显示日期与星期;
(3)为用户提供年份与月份的下拉形式菜选择年份与月份;
(4)同时显示查看时的时刻。
3、课程设计的基本算法
publicclasswnlextendsJFrameimplementsActionListener,ItemListener{
Datedate=newDate();
privateGregorianCalendargregorianCalendar=newGregorianCalendar();
//定义中英文字符数组存储星期信息,用于转换显示
privateString[]stringWeekEn=newString[]{"
SUN"
"
MON"
TUE"
WED"
"
THU"
FRI"
SAT"
};
privateString[]stringWeekCn=newString[]{"
星期日"
星期一"
星期二"
星期三"
星期四"
星期五"
星期六"
//定义存储月份的信息数组,用于转换显示方式
privateString[]stringMonthEn=newString[]{"
Jan"
Feb"
Mar"
Apr"
May"
Jun"
Jul"
Aug"
Sept"
Oct"
Nov"
Dec"
privateString[]stringMonthCn={"
1月"
"
2月"
3月"
4月"
5月"
6月"
7月"
8月"
9月"
10月"
11月"
12月"
};
privateString[]sysNowTime=newString[6];
//sysNowTime用于存储系统时间的变量
privateString[]sysRunTime=newString[6];
privateJLabel[]labelWeek=newJLabel[7];
privateJLabel[]labelDay=newJLabel[42];
privateJLabellabelTime=newJLabel();
privateJPanelpanel1=newJPanel();
privateJPanelpanel2=newJPanel();
privateJPanelpanel3=newJPanel();
privateJComboBoxcombo1=newJComboBox();
privateJComboBoxcombo2=newJComboBox();
privateJButtonbuttonToday=newJButton();
privateBorderborder=BorderFactory.createRaisedBevelBorder();
privateBorderborder1=BorderFactory.createLineBorder(Color.cyan,3);
publicwnl(Stringtitle){
super(title);
for(inty=1900;
y<
2200;
y++){
combo1.addItem("
+newInteger(y).toString()+"
年"
);
}
for(intm=0;
m<
12;
m++){
combo2.addItem("
+stringMonthCn[m]);
buttonToday.setText("
现在时刻"
setLayout(newFlowLayout());
add(panel1);
add(panel2);
add(panel3);
panel1.setLayout(newGridLayout(2,3,10,2));
panel1.add(combo1);
combo1.addItemListener(this);
panel1.add(combo2);
combo2.addItemListener(this);
panel1.add(buttonToday);
//buttonToday.addActionListener(this);
labelTime.setFont(newFont("
宋体"
Font.PLAIN,16));
labelTime.setForeground(Color.red);
panel1.add(labelTime);
Timertime=newTimer(1000,newTimerListener());
time.addActionListener(newTimerListener());
//time.setRepeats(true);
time.start();
//labelTime.addAncestorListener(newTimerListener());
panel2.setLayout(newGridLayout(7,7,10,10));
panel2.setBackground(Color.white);
for(inti=0;
i<
7;
i++){
labelWeek[i]=newJLabel();
labelWeek[i].setHorizontalAlignment(0);
if(i==0||i==6){
labelWeek[i].setBackground(Color.blue);
labelWeek[i].setForeground(Color.RED);
labelWeek[i].setFont(newFont("
黑体"
Font.BOLD,14));
else{
labelWeek[i].setForeground(Color.BLACK);
新宋体"
Font.PLAIN,14));
labelWeek[i].setText(stringWeekCn[i]);
panel2.add(labelWeek[i]);
for(inti=0;
42;
labelDay[i]=newJLabel();
labelDay[i].setHorizontalAlignment(0);
labelDay[i].setText("
"
panel2.add(labelDay[i]);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
setSize(300,300);
setBounds(250,200,400,360);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getSysDate();
setNowDate();
publicvoidactionPerformed(ActionEventae){
if(ae.getSource()==buttonToday){
publicvoiditemStateChanged(ItemEventaa){
setChangeDate();
publicintturnWeek(Stringweek){
inti;
for(i=0;
i++)
if(week.equalsIgnoreCase(stringWeekEn[i]))
break;
returni;
publicintturnMonth(Stringmonth){
/**
*intturnMonth(Stringmonth)
*@month系统日期中的月,诸如Jan\Feb
*@returnint
*返回一个整数值,用于寻找stringMonthCn[]数组中对应的中文月份
*/
if(month.equalsIgnoreCase(stringMonthEn[i]))
*setNowDate()
*设置当前系统日期
publicvoidsetNowDate(){
setSysDate(getNowYear(),getNowMonth());
getSysRunDate();
setDateNull();
combo1.setSelectedIndex(getShowYear()-1900);
combo2.setSelectedIndex(getShowMonth());
setDays(getMonthDays(getNowYear(),getNowMonth()),getInitWeek(sysRunTime[0]),getNowDay());
labelTime.setText(sysNowTime[3]);
labelTime
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 基于 万年历 设计 实现 源代码