java课程设计万年历源代码

上传人:第*** 文档编号:62119902 上传时间:2018-12-17 格式:PDF 页数:17 大小:327.04KB
返回 下载 相关 举报
java课程设计万年历源代码_第1页
第1页 / 共17页
java课程设计万年历源代码_第2页
第2页 / 共17页
java课程设计万年历源代码_第3页
第3页 / 共17页
java课程设计万年历源代码_第4页
第4页 / 共17页
java课程设计万年历源代码_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java课程设计万年历源代码》由会员分享,可在线阅读,更多相关《java课程设计万年历源代码(17页珍藏版)》请在金锄头文库上搜索。

1、1 华 北 科 技 学 院 课程设计报告 面向对象程序设计(面向对象程序设计(Java) 班级:电商 B09-3姓名:周婷玉 设计题目:_万年历_ 设计时间:2011-12-28 至2012-01-06 指导教师:_郭慧_ _ 评语:_ _ _ _ _ 评阅成绩:_评阅教师:_ 2 课程设计说明书课程设计说明书 1、课程设计的目的课程设计的目的 a)掌握面向对象程序设计基本要素(封装、继承、多态) b)掌握 JAVA 语言常用类包及其常用方法和 JAVA 语言基本语法 c)掌握基于 AWT 的图形用户界面设计 i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、 滚动条等。 ii.事

2、件处理机制 d)掌握布局、对话框的使用 e)掌握发布 JAVA 应用程序 2、功能模块简介和系统结构图功能模块简介和系统结构图 需求分析:本程序的要求为: 1.使用图形用户界面 2.能够实现日期与星期的查询 3.实现当日的时间备忘 功能设计: 1.能以月历形式显示日期与星期 2.支持用户自己输入年份,并提供月份的下拉形式来选择查询 3.添加当日行事历,储存与清除功能 3 3、主要源程序及代码主要源程序及代码 4 黄色突出显示今日日期 选择一月五日,添加事件:今天我们放假啦! ! !点击存储。 查询 1991 年 选择 9 月点击查询 5 代码实现: import java.io.*;/引入相关

3、物件 import java.util.*; import java.lang.Thread; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax

4、.swing.JComboBox; import javax.swing.JDesktopPane; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JScrollPane; import javax.swing.WindowConstants; import javax.swing.border.BevelBorder; import javax.swing.border.LineBorder; import javax.swi

5、ng.border.SoftBevelBorder; public class NewJFrame extends javax.swing.JFrame /建立一视窗物件 private JDesktopPane jDesktopPane1;/相关物件宣告 private JDesktopPane jDesktopPane2; private JButton jButton1; private JButton jButton2; private JLabel jLabel2; 6 private JLabel jLabel4; private JLabel jLabel3; private J

6、Label jLabel5; private JLabel jLabel6; private JLabel jLabel7; private JLabel jLabel8; private JComboBox jComboBox1; private JTextField jTextField1; private JButton jButton3; private JTextArea jTextArea1; private JLabel jLabel1; public static void main(String args) throws IOException/主程式开始 NewJFrame

7、 inst = new NewJFrame(); inst.setVisible(true); /主程式結束 public NewJFrame()/建立视窗开始 super(); initGUI();/呼叫 GUI 函數 /建立视窗結束 public int getdate()/取得系统日期函数开始 int date_array = new int3; Calendar ca = new GregorianCalendar(); date_array0 = ca.get(Calendar.YEAR);/年 date_array1 = ca.get(Calendar.MONTH)+1;/月 da

8、te_array2 = ca.get(Calendar.DAY_OF_MONTH);/日 return date_array;/回傳自訂日期陣列 /取得系統日期函數結束 public void new_btn()/重新产生日期按钮函数开始 jTextArea1.setText(“);/清空记事 int year,month; year = Integer.parseInt(jLabel5.getText().substring(0,4);/設定為已選擇的年 month = Integer.parseInt(jLabel5.getText().substring(7,9);/設定為已選擇的月 d

9、ate_btn_create(year,month);/呼叫產生日期按鈕函數 /重新產生日期按鈕函數結束 public void date_btn_create(int year,int month)/產生日期按鈕 7 int y=0,x=0,x_add=0,y_add=0,week_add=0,date_acc=0,week_of_day=0; String syear,smonth,sday,filename; syear = String.valueOf(year); smonth = String.valueOf(month); if (smonth.length() = 1)/若小於

10、 10 月(一位數)就在前面加 0 smonth = “0“+smonth; jDesktopPane1.remove(jDesktopPane2);/移除桌面 2(日期按鈕附著,也就是把日期按鈕移除) jDesktopPane2 = new JDesktopPane();/產生一個新的桌面 jDesktopPane1.add(jDesktopPane2); jDesktopPane2.setBounds(0, 30, 252, 196);/設定大小及位置 jDesktopPane2.setBackground(new java.awt.Color(148,205,176);/設定顏色 swi

11、tch(month)/設定月份天數 case 1:/大月 31 天 case 3: case 5: case 7: case 8: case 10: case 12: date_acc = 31; break; case 4:/小月 30 天 case 6: case 9: case 11: date_acc = 30; break; case 2: if (leap_year(year) date_acc = 29; else date_acc = 28; week_of_day = dow(year,month,1);/呼叫星期函數(取得當月第一天為星期幾) switch(week_of_

12、day)/設定當月 1 日位置(像素) 8 case 0: week_add = 0; break; case 1: week_add = 34; break; case 2: week_add = 68; break; case 3: week_add = 102; break; case 4: week_add = 136; break; case 5: week_add = 170; break; case 6: week_add = 204; break; JButton btn = new JButtondate_acc;/建立日期按鈕陣列 for (int i=0;i0 /X 軸座

13、標 x_add=0;/下一個按鈕座標(X 軸)加值 y+;/Y 軸座標 y_add+=10;/換行座標(Y 軸)加值 week_add=0;/當月第一日按鈕座標加值 /下面設定按鈕大小及加值(X為起始10+第幾個按鈕*橫向寬度 25+間隔+當月第一天星期幾加 值) btni.setBounds(10+x*25+x_add+week_add, y*20+y_add, 25, 20);/(Y 為第幾個按鈕*高度 20+ 換行加值)按鈕寬為 25 高為 20 btni.setFont(new java.awt.Font(“Arial“,1,12);/設定字體大小及樣式 btni.setBorder(

14、BorderFactory.createTitledBorder(“);/設定按鈕文字不自動調整大小 int now = new int3; now = getdate();/取得當天日期 if (year = now0 /若為當天則設定按鈕為黃色 else btni.setBackground(new java.awt.Color(148,205,176);/若不是當天則設定按鈕為綠色 sday = String.valueOf(i+1); filename = syear+smonth+sday;/記事檔案名稱(年+月+日.txt) File file=new File(filename+

15、“.txt“);/建立檔案物件 if (file.exists()/若當天有記事檔案則設定按鈕字體顏色為藍色 btni.setForeground(new java.awt.Color(0,0,255); btni.addActionListener(new ActionListener() /設定按鈕監聽(觸發事件函數) public void actionPerformed(ActionEvent evt) btnActionPerformed(evt); ); x+;/下一個按鈕 X 座標加權 x_add+=9;/下一個按鈕間隔 X 座標加權 public boolean leap_year(int year)/判斷閏年函數開始 boolean leap_year;/4 的倍數,若為 100 的倍數則必須為 4 的倍數才是閏年 if (year%4 = 0) if (ye

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号