java课程设计万年历源代码Word格式.doc
- 文档编号:13195910
- 上传时间:2022-10-08
- 格式:DOC
- 页数:17
- 大小:297.50KB
java课程设计万年历源代码Word格式.doc
《java课程设计万年历源代码Word格式.doc》由会员分享,可在线阅读,更多相关《java课程设计万年历源代码Word格式.doc(17页珍藏版)》请在冰豆网上搜索。
a)掌握面向对象程序设计基本要素(封装、继承、多态)
b)掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法
c)掌握基于AWT的图形用户界面设计
i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、滚动条等。
ii.事件处理机制
d)掌握布局、对话框的使用
e)掌握发布JAVA应用程序
2、功能模块简介和系统结构图
需求分析:
本程序的要求为:
1.使用图形用户界面
2.能够实现日期与星期的查询
3.实现当日的时间备忘
功能设计:
1.能以月历形式显示日期与星期
2.支持用户自己输入年份,并提供月份的下拉形式来选择查询
3.添加当日行事历,储存与清除功能
3、主要源程序及代码
黄色突出显示今日日期
选择一月五日,添加事件:
今天我们放假啦!
!
点击存储。
查询1991年选择9月点击查询
代码实现:
importjava.io.*;
//引入相关物件
importjava.util.*;
importjava.lang.Thread;
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.BorderFactory;
importjavax.swing.ComboBoxModel;
importjavax.swing.DefaultComboBoxModel;
importjavax.swing.JButton;
importjavax.swing.JComboBox;
importjavax.swing.JDesktopPane;
importjavax.swing.JLabel;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
importjavax.swing.JScrollPane;
importjavax.swing.WindowConstants;
importjavax.swing.border.BevelBorder;
importjavax.swing.border.LineBorder;
importjavax.swing.border.SoftBevelBorder;
publicclassNewJFrameextendsjavax.swing.JFrame//建立一视窗物件
{
privateJDesktopPanejDesktopPane1;
//相关物件宣告
privateJDesktopPanejDesktopPane2;
privateJButtonjButton1;
privateJButtonjButton2;
privateJLabeljLabel2;
privateJLabeljLabel4;
privateJLabeljLabel3;
privateJLabeljLabel5;
privateJLabeljLabel6;
privateJLabeljLabel7;
privateJLabeljLabel8;
privateJComboBoxjComboBox1;
privateJTextFieldjTextField1;
privateJButtonjButton3;
privateJTextAreajTextArea1;
privateJLabeljLabel1;
publicstaticvoidmain(String[]args)throwsIOException//主程式开始
{
NewJFrameinst=newNewJFrame();
inst.setVisible(true);
}//主程式結束
publicNewJFrame()//建立视窗开始
super();
initGUI();
//呼叫GUI函數
}//建立视窗結束
publicint[]getdate()//取得系统日期函数开始
int[]date_array=newint[3];
Calendarca=newGregorianCalendar();
date_array[0]=ca.get(Calendar.YEAR);
//年
date_array[1]=ca.get(Calendar.MONTH)+1;
//月
date_array[2]=ca.get(Calendar.DAY_OF_MONTH);
//日
returndate_array;
//回傳自訂日期陣列
}//取得系統日期函數結束
publicvoidnew_btn()//重新产生日期按钮函数开始
jTextArea1.setText("
"
);
//清空记事
intyear,month;
year=Integer.parseInt(jLabel5.getText().substring(0,4));
//設定為已選擇的年
month=Integer.parseInt(jLabel5.getText().substring(7,9));
//設定為已選擇的月
date_btn_create(year,month);
//呼叫產生日期按鈕函數
}//重新產生日期按鈕函數結束
publicvoiddate_btn_create(intyear,intmonth)//產生日期按鈕
inty=0,x=0,x_add=0,y_add=0,week_add=0,date_acc=0,week_of_day=0;
Stringsyear,smonth,sday,filename;
syear=String.valueOf(year);
smonth=String.valueOf(month);
if(smonth.length()==1)//若小於10月(一位數)就在前面加0
smonth="
0"
+smonth;
jDesktopPane1.remove(jDesktopPane2);
//移除桌面2(日期按鈕附著,也就是把日期按鈕移除)
jDesktopPane2=newJDesktopPane();
//產生一個新的桌面
jDesktopPane1.add(jDesktopPane2);
jDesktopPane2.setBounds(0,30,252,196);
//設定大小及位置
jDesktopPane2.setBackground(newjava.awt.Color(148,205,176));
//設定顏色
switch(month)//設定月份天數
{
case1:
//大月31天
case3:
case5:
case7:
case8:
case10:
case12:
date_acc=31;
break;
case4:
//小月30天
case6:
case9:
case11:
date_acc=30;
case2:
if(leap_year(year))
date_acc=29;
else
date_acc=28;
}
week_of_day=dow(year,month,1);
//呼叫星期函數(取得當月第一天為星期幾)
switch(week_of_day)//設定當月1日位置(像素)
case0:
week_add=0;
week_add=34;
week_add=68;
week_add=102;
week_add=136;
week_add=170;
week_add=204;
JButtonbtn[]=newJButton[date_acc];
//建立日期按鈕陣列
for(inti=0;
i<
date_acc;
i++)//建立日期按鈕陣列回圈
btn[i]=newJButton();
//建立對應日期按鈕
jDesktopPane2.add(btn[i]);
//加到桌面2上
btn[i].setText(String.valueOf(i+1));
//設定按鈕文字為日期
if((i-week_of_day>
0&
&
(i+week_of_day)%7==0)||((i+week_of_day)%7==0&
i!
=0))
{//設定當月第一天日期按鈕位置
x=0;
//X軸座標
x_add=0;
//下一個按鈕座標
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 万年历 源代码