




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
I軟件學(xué)院三級實踐課題課題名稱:日程管理小助手專業(yè):軟件工程(Java方向)班級:學(xué)號:學(xué)生姓名:指導(dǎo)教師:年月日
摘要隨著經(jīng)濟(jì)全球化、管理現(xiàn)代化的到來,信息化建設(shè)已提到議事日程。計算機(jī)和網(wǎng)絡(luò)技術(shù)得到了迅速的發(fā)展和普及,互聯(lián)網(wǎng)的應(yīng)用和發(fā)展改變了全球的經(jīng)濟(jì)模式,企業(yè)管理模式也受到了極大的沖擊,使信息資源的共享和超越時空的交換成為了可能。在這個激烈競爭的社會,人們的雜亂事務(wù)越來越多,而且常常因為一些小事情把重要的事情耽誤,對個人家庭以及企業(yè)造成巨大的損失。事件提醒也來越成為人們的一個救星,來化解各個事件間的矛盾。為了迎接殘酷的社會競爭,個人管理助手是每個個體都需要實用的一種提醒軟件。因此,毫無疑問的說,日程管理無能對個人還是企業(yè)都是非常必要的。做好了日程管理個人可以更好地規(guī)劃自己生活,讓自己的生活多姿多彩,井然有序;讓企業(yè)能確保各項工作及時有效推進(jìn),在時間以及效率上能夠給企業(yè)帶來最大的受益,能夠在規(guī)定時間內(nèi)完成既定任務(wù)。日程管理的重要性在于可以將每天的工作和事務(wù)安排在日期中并做一個有效的記錄方便管理日常的工作和事務(wù),達(dá)到工作備忘的目的。同時也具有對員工日常工作進(jìn)行指導(dǎo)、監(jiān)督的作用。關(guān)鍵詞:辦公自動化,計算機(jī),日程管理:日程管理小助手目錄TOC\o"1-3"\h\z摘要 I第1章系統(tǒng)分析 11.1問題描述 11.2技術(shù)分析 11.3工程進(jìn)度計劃 2第2章系統(tǒng)功能設(shè)計 32.1功能分析 32.2系統(tǒng)設(shè)計 42.2.1數(shù)據(jù)庫表的設(shè)計 4圖2-2 43.1功能模塊 53.2主要界面實現(xiàn) 63.3部分功能實現(xiàn)的源代碼 10第4章結(jié)束語 20姓名:論文題目PAGE1:日程管理小助手PAGE20第1章系統(tǒng)分析1.1問題描述在這個激烈競爭的社會,人們的雜亂事務(wù)越來越多,而且常常因為一些小事情把重要的事情耽誤,對個人家庭以及企業(yè)造成巨大的損失。事件提醒也來越成為人們的一個救星,來化解各個事件間的矛盾。為了迎接殘酷的社會競爭,個人管理助手是每個個體都需要實用的一種提醒軟件。因此,毫無疑問的說,日程管理無能對個人還是企業(yè)都是非常必要的。日程管理個人可以更好地規(guī)劃自己生活,讓自己的生活多姿多彩,井然有序;讓企業(yè)能確保各項工作及時有效推進(jìn),在時間以及效率上能夠給企業(yè)帶來最大的受益,能夠在規(guī)定時間內(nèi)完成既定任務(wù)。1.2技術(shù)分析在界面設(shè)計上,要盡量簡化,是用圖形化頁面。在前面利用了上中下三個面板,最外面的布局管理用的是BorderLayout()。在最上面那一行用的是JMenu(),二級下拉菜單用的是JMenuItem()。在BorderLayout.CENTER中放的是圖形,用來美化外觀;BorderLayout.SOUTH放了四個JLabel用來提示已經(jīng)添加的事件提醒。在具體的時間選擇上要提供日歷,即使用Calender類。用此類可以避免用戶在輸入的時候輸入非法字符以及非法操作等造成異常。而且,要使用數(shù)據(jù)庫來記錄具體的時間,事件信息。在記錄時間的時候,考慮到用Date記錄時間要將Date轉(zhuǎn)化成字符串,在記錄的時候又得將字符串轉(zhuǎn)化為Date類型較為繁瑣。因此,在時間記錄方面,一直使用的字符串類型。避免相互轉(zhuǎn)化的繁瑣,以及在轉(zhuǎn)化石可能拋出的異常,簡化了代碼,減少了工作量。事件記錄方面也是用的字符串類型,基于事件提醒時,記錄字?jǐn)?shù)較少,用Text格式的又較為麻煩,因此選擇了字符串。但是,在幫助的通告項方面使用的為Text,字?jǐn)?shù)較多,需要選擇該格式。在細(xì)節(jié)方面,一定要捕捉異常,用到try()、catch(){},捕捉并處理異常。在時間輸入時,默認(rèn)不輸入時間為本地時間。后又一個時間判斷,用到if語句,當(dāng)獲得的時間與本地時間相同時,提示用戶未輸入時間且重新輸入。事件提醒內(nèi)容(equals(“”)),提示用戶輸入事件提醒內(nèi)容。在異常處理方面做到捕捉異常,處理異常,并且合理;在操作性方面,要人性化。當(dāng)提示用戶輸入的內(nèi)容,或操作非法時,用重新返回到原頁面,而不是異?;蛲顺觥S玫絛ispose()讓本頁面“消失”,在重新調(diào)用原來的頁面。在提醒用戶方面,獲得本地的時間與提醒時間相同時,用到ShowMessageDialog()提示,用戶在某時間要做某事。1.3工程進(jìn)度計劃本課題小組共兩人,一個主要負(fù)責(zé)前期的需求分析,中期的一些異常處理、具體的修改,最后的一些總結(jié),代碼優(yōu)化。另外,我主要負(fù)責(zé)部分功能的實現(xiàn),對部分代碼的修改、優(yōu)化。在三周內(nèi)可以基本結(jié)束課題的所有內(nèi)容,完成知道老師對本課題的指導(dǎo),安排的具體的修改工作。當(dāng)然,在三周的時間里,肯定不是剛開始就立即著手開始進(jìn)入課題實踐階段。在第一周內(nèi),主要對課程管理小助手需要完成的必要功能、參考別人做過的功能以及其他人做的優(yōu)點以及不足的地方、綜合我們學(xué)過的知識選擇我們要完成的功能,總結(jié)我們需要實現(xiàn)的方法以及復(fù)習(xí)或者學(xué)習(xí)實現(xiàn)該功能的方法。第二周開始著手進(jìn)入代碼編譯階段,具體的代碼完成后,部分要修改或優(yōu)化的由我的同伴完成。第三周前段時間,主要對已完成的系統(tǒng)進(jìn)行測試,對一些未處理的異常進(jìn)行捕捉并處理。后段時間進(jìn)行課題報告的完成以及總結(jié)三周里的實踐心得,系統(tǒng)的完成滿意度以及學(xué)習(xí)方法的總結(jié)。 第2章系統(tǒng)功能設(shè)計2.1功能分析日程管理日程管理幫助幫助刪除事件提醒查看事件提醒設(shè)置刪除事件提醒查看事件提醒設(shè)置添加事件提醒提醒內(nèi)容刪除全部提醒內(nèi)容刪除全部字體大小查詢?nèi)孔煮w大小背景色按時間查詢提醒時間字體大小查詢?nèi)孔煮w大小背景色按時間查詢提醒時間按時間刪除刪除全部圖2-1如圖2-1所示,用戶使用本系統(tǒng)時,可以根據(jù)日歷表選擇事件提醒的時間,輸入事件提醒的內(nèi)容。用戶可以選擇按時間刪除和全部刪除兩種刪除方式,也可以通過幫助,來了解本軟件的功能以及操作步驟。查看事件提醒可以通過時間或查詢?nèi)績煞N查詢方式查詢,在設(shè)置方面,可以設(shè)置系統(tǒng)的字體顏色,大小以及背景色。在美化系統(tǒng)首頁方面,用了Icon對象,添加了圖片,利用JPanel,JLabel,JMenu,JMenuItem來圖形化界面。在面板的下方,有四個JLabel來顯示要提示的事件提醒內(nèi)容。根據(jù)事件的緊急程度來定義不同的顏色來區(qū)分等級,在添加完事件提醒內(nèi)容之后,會顯示到系統(tǒng)主業(yè)的下方JLabel上。也可以調(diào)節(jié)字體的大小,顏色,背景色。查詢、刪除事件提醒可以選擇全部或?qū)我粚ο筮M(jìn)行操作,可以在日歷中選擇事件提醒的事件以及提示所有非法的操作以及提示用戶再次輸入。2.2系統(tǒng)設(shè)計2.2.1數(shù)據(jù)庫表的設(shè)計表2-2Schedule日程安排配置表字段名稱類型大小約束說明N201時間編號thingsVARCHAR900事件提醒daytimeVARCHAR300提醒時間圖2-2如圖2-2所示,數(shù)據(jù)庫中有一張表,其屬性為時間編號,事件提醒內(nèi)容,提醒時間等內(nèi)容。No.定義為int類型,為事件的序號,設(shè)置為主鍵。用數(shù)據(jù)庫來記錄具體的時間,事件信息。在記錄時間的時候,考慮到用Date記錄時間要將Date轉(zhuǎn)化成字符串,在記錄的時候又得將字符串轉(zhuǎn)化為Date類型較為繁瑣。因此,在時間記錄方面,一直使用的字符串類型。避免相互轉(zhuǎn)化的繁瑣,以及在轉(zhuǎn)化石可能拋出的異常,簡化了代碼,減少了工作量。事件記錄方面也是用的字符串類型,基于事件提醒時,記錄字?jǐn)?shù)較少,用Text格式的又較為麻煩,因此選擇了字符串。但是,在幫助的通告項方面使用的為Text,字?jǐn)?shù)較多,需要選擇該格式。在細(xì)節(jié)方面,一定要捕捉異常,用到try()、catch(){},捕捉并處理異常。
第3章系統(tǒng)實現(xiàn)3.1功能模塊圖3-1如圖3-1所示,在主界面方面,添加了一張背景圖片來美化桌面,下面是事件消息的提醒,按照時間的先后順序根據(jù)顏色的不同不區(qū)分事件要處理的緊急度。最上面一行是菜單欄,主要是簡化按鈕所占用的空間。在界面設(shè)計上,要盡量簡化,是用圖形化頁面。在前面利用了上中下三個面板,最外面的布局管理用的是BorderLayout()。在最上面那一行用的是JMenu(),二級下拉菜單用的是JMenuItem()。在BorderLayout.CENTER中放的是圖形,用來美化外觀;BorderLayout.SOUTH放了四個JLabel用來提示已經(jīng)添加的事件提醒。在具體的時間選擇上要提供日歷,即使用Calender類。用此類可以避免用戶在輸入的時候輸入非法字符以及非法操作等造成異常。在操作性方面,要人性化。當(dāng)提示用戶輸入的內(nèi)容,或操作非法時,用重新返回到原頁面,而不是異常或退出。用到dispose()讓本頁面“消失”,在重新調(diào)用原來的頁面。在提醒用戶方面,獲得本地的時間與提醒時間相同時,用到ShowMessageDialog()提示,用戶在某時間要做某事。在細(xì)節(jié)方面,一定要捕捉異常,用到try()、catch(){},捕捉并處理異常。在時間輸入時,默認(rèn)不輸入時間為本地時間。后又一個時間判斷,用到if語句,當(dāng)獲得的時間與本地時間相同時,提示用戶未輸入時間且重新輸入。事件提醒內(nèi)容(equals(“”)),提示用戶輸入事件提醒內(nèi)容。在異常處理方面做到捕捉異常,處理異常,并且合理;在操作性方面,要人性化。當(dāng)提示用戶輸入的內(nèi)容,或操作非法時,用重新返回到原頁面,而不是異?;蛲顺?。用到dispose()讓本頁面“消失”,在重新調(diào)用原來的頁面。在提醒用戶方面,獲得本地的時間與提醒時間相同時,用到ShowMessageDialog()提示,用戶在某時間要做某事。3.2主要界面實現(xiàn)1.圖3-2-1圖3-2-2添加界面,是可以根據(jù)日歷的方式來進(jìn)行時間的選擇;如果不驚醒時間選擇的話,默認(rèn)時間是本地時間。如果不輸入事件信息的話,利用if判斷,若等于本地時間,則提示,沒有輸入時間提醒的時間,會返回時間選擇頁面,重新進(jìn)行時間的獲取。在事件提醒內(nèi)容方面,如果輸入的信息提示為空,會提示未輸入,返回頁面重新輸入。在具體的時間選擇上要提供日歷,即使用Calender類。用此類可以避免用戶在輸入的時候輸入非法字符以及非法操作等造成異常。而且,要使用數(shù)據(jù)庫來記錄具體的時間,事件信息。在記錄時間的時候,考慮到用Date記錄時間要將Date轉(zhuǎn)化成字符串,在記錄的時候又得將字符串轉(zhuǎn)化為Date類型較為繁瑣。因此,在時間記錄方面,一直使用的字符串類型。避免相互轉(zhuǎn)化的繁瑣,以及在轉(zhuǎn)化石可能拋出的異常,簡化了代碼,減少了工作量。事件記錄方面也是用的字符串類型,基于事件提醒時,記錄字?jǐn)?shù)較少,用Text格式的又較為麻煩,因此選擇了字符串。但是,在幫助的通告項方面使用的為Text,字?jǐn)?shù)較多,需要選擇該格式。在細(xì)節(jié)方面,一定要捕捉異常,用到try()、catch(){},捕捉并處理異常。在時間輸入時,默認(rèn)不輸入時間為本地時間。后又一個時間判斷,用到if語句,當(dāng)獲得的時間與本地時間相同時,提示用戶未輸入時間且重新輸入。事件提醒內(nèi)容(equals(“”)),提示用戶輸入事件提醒內(nèi)容。在異常處理方面做到捕捉異常,處理異常,并且合理;在操作性方面,要人性化。當(dāng)提示用戶輸入的內(nèi)容,或操作非法時,用重新返回到原頁面,而不是異?;蛲顺觥S玫絛ispose()讓本頁面“消失”,在重新調(diào)用原來的頁面。在提醒用戶方面,獲得本地的時間與提醒時間相同時,用到ShowMessageDialog()提示,用戶在某時間要做某事。2.刪除界面3-3如圖3-3所示,在刪除方式方面,可以選擇全部刪除或者單一刪除。在刪除方式選擇方面用的是JOptionPane.ShowOptionDialog(),利用if判斷選擇的序號,根據(jù)用戶選擇的功能,執(zhí)行相應(yīng)的方法。當(dāng)選擇的內(nèi)容為“按時間刪除”內(nèi)容時,在數(shù)據(jù)庫方面用到的sql語句為(“deletefromSchedulewheredaytime=‘”+date+”’”);可以根據(jù)時間刪除事件提醒的內(nèi)容,在首頁面板的JLabel上顯示的就沒有本條事件提醒內(nèi)容;而在選擇的內(nèi)容為“刪除所有事件提醒”內(nèi)容時,在數(shù)據(jù)庫方面用到的sql語句為(“deletefromSchedule“);可以根據(jù)刪除全部的事件提醒的內(nèi)容,在首頁面板的JLabel上顯示的就為空;3.查詢界面3-4如圖3-3所示,在刪除方式方面,可以選擇全部查詢或者單一查詢。在刪除方式選擇方面用的是JOptionPane.ShowOptionDialog(),利用if判斷選擇的序號,根據(jù)用戶選擇的功能,執(zhí)行相應(yīng)的方法。當(dāng)選擇的內(nèi)容為“按時間查詢”內(nèi)容時,在數(shù)據(jù)庫方面用到的sql語句為(“selectNo,daytime,thingsfromSchedulewheredaytime=‘”+date+”’”);可以根據(jù)時間查詢事件提醒的內(nèi)容,在showMessageDialog消息彈出一個消息對話框,會提示查詢成功以及查詢的結(jié)果;而在選擇的內(nèi)容為“查詢所有事件提醒”內(nèi)容時,在數(shù)據(jù)庫方面用到的sql語句為(“select*fromSchedule“);可以查詢?nèi)康氖录嵝训膬?nèi)容,在彈出的面板中會顯示所查詢的內(nèi)容;3.3部分功能實現(xiàn)的源代碼importjava.util.Date;importjava.util.Calendar;importjava.text.SimpleDateFormat;importjava.text.ParseException;importjava.awt.Color;importjava.awt.Font;importjava.awt.Point;importjava.awt.Dimension;importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.Cursor;importjava.awt.Frame;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;//importjavax.swing.JFrame;importjavax.swing.JButton;importjavax.swing.JDialog;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JLabel;importjavax.swing.JSpinner;importjavax.swing.JTextArea;importjavax.swing.JTextField;importjavax.swing.SpinnerNumberModel;importjavax.swing.SwingUtilities;importjavax.swing.SwingConstants;importjavax.swing.event.ChangeListener;importjavax.swing.event.ChangeEvent;importjavax.swing.border.LineBorder;@SuppressWarnings("serial")publicclassCalextendsJFrame{ finalStringshowMessageDialog="未添加時間信息,請重新添加?。?; privateStringgetDate(){ //TODOAuto-generatedmethodstub Dated=newDate(); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddkk"); Stringstr=sdf.format(d);//System.out.println("Thedateis:"+str); returnstr; }publicCal(){finalDateChooserJButtonbtn=newDateChooserJButton();finalJTextFieldjt1=newJTextField(30);finalJButtonbtn2=newJButton("確定");finalJLabeljl=newJLabel("請輸入事件提醒的內(nèi)容:");if(btn.getText()==getDate()){ JOptionPane.showMessageDialog(null,showMessageDialog);}if((jt1.getText()).equals(null)){ JOptionPane.showMessageDialog(null,"未添加提示信息,請重新添加??!"); }btn2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ if(btn.getText()==getDate()){ JOptionPane.showMessageDialog(null,"未添加時間信息,請重新添加?。?); } //System.out.print(getDate()); if(jt1.getText()==null){ JOptionPane.showMessageDialog(null,"未添加提示信息,請重新添加!!"); } JOptionPane.showMessageDialog(null,"未添加提示信息,請重新添加??!"); JOptionPane.showMessageDialog(null,"事件提醒時間"+btn.getText()+"獲取成功。");dispose(); System.out.println(jt1.getText()); ScheduleManagementsm=newScheduleManagement(); sm.setSize(600,500); sm.setLocation(400,200);}});this.getContentPane().setLayout(newBorderLayout());this.getContentPane().add(btn,newBorderLayout().NORTH);this.getContentPane().add(jl,newBorderLayout().WEST);this.getContentPane().add(jt1,newBorderLayout().EAST);this.getContentPane().add(btn2,newBorderLayout().SOUTH);this.setSize(500,400);this.setLocation(400,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}@SuppressWarnings("unused")publicstaticvoidmain(String[]args){Calcal=newCal();}}@SuppressWarnings("serial")classDateChooserJButtonextendsJButton{privateDateChooserdateChooser=null;privateStringpreLabel="";publicDateChooserJButton(){this(getNowDate());}publicDateChooserJButton(SimpleDateFormatdf,StringdateString){this();setText(df,dateString);}publicDateChooserJButton(Datedate){this("",date);}publicDateChooserJButton(StringpreLabel,Datedate){if(preLabel!=null)this.preLabel=preLabel;setDate(date);setBorder(null);setCursor(newCursor(Cursor.HAND_CURSOR));super.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(dateChooser==null)dateChooser=newDateChooser();Pointp=getLocationOnScreen();p.y=p.y+30;dateChooser.showDateChooser(p);}});}privatestaticDategetNowDate(){returnCalendar.getInstance().getTime();}privatestaticSimpleDateFormatgetDefaultDateFormat(){returnnewSimpleDateFormat("yyyy-MM-ddHH");}//覆蓋父類的方法publicvoidsetText(Strings){Datedate;try{date=getDefaultDateFormat().parse(s);}catch(ParseExceptione){date=getNowDate();}setDate(date);}publicvoidsetText(SimpleDateFormatdf,Strings){Datedate;try{date=df.parse(s);}catch(ParseExceptione){date=getNowDate();}setDate(date);}publicvoidsetDate(Datedate){super.setText(preLabel+getDefaultDateFormat().format(date));}publicDategetDate(){StringdateString=getText().substring(preLabel.length());try{returngetDefaultDateFormat().parse(dateString);}catch(ParseExceptione){returngetNowDate();}}//覆蓋父類的方法使之無效publicvoidaddActionListener(ActionListenerlistener){}privateclassDateChooserextendsJPanelimplementsActionListener,ChangeListener{intstartYear=1980;//默認(rèn)【最小】顯示年份intlastYear=2050;//默認(rèn)【最大】顯示年份intwidth=400;//界面寬度intheight=600;//界面高度ColorbackGroundColor=Color.gray;//底色//月歷表格配色//ColorpalletTableColor=Color.GRAY;//日歷表底色ColortodayBackColor=Color.GREEN;//今天背景色ColorweekFontColor=Color.blue;//星期文字色ColordateFontColor=Color.black;//日期文字色ColorweekendFontColor=Color.red;//周末文字色//控制條配色//ColorcontrolLineColor=Color.GRAY;//控制條底色ColorcontrolTextColor=Color.white;//控制條標(biāo)簽文字色ColorrbFontColor=Color.white;//RoundBox文字色ColorrbBorderColor=Color.red;//RoundBox邊框色ColorrbButtonColor=Color.pink;//RoundBox按鈕色ColorrbBtFontColor=Color.red;//RoundBox按鈕文字色JDialogdialog;JSpinneryearSpin;JSpinnermonthSpin;JSpinnerhourSpin;JButton[][]daysButton=newJButton[6][7];DateChooser(){setLayout(newBorderLayout());setBorder(newLineBorder(backGroundColor,2));setBackground(backGroundColor);JPaneltopYearAndMonth=createYearAndMonthPanal();add(topYearAndMonth,BorderLayout.NORTH);JPanelcenterWeekAndDay=createWeekAndDayPanal();add(centerWeekAndDay,BorderLayout.CENTER);}privateJPanelcreateYearAndMonthPanal(){Calendarc=getCalendar();intcurrentYear=c.get(Calendar.YEAR);intcurrentMonth=c.get(Calendar.MONTH)+1;intcurrentHour=c.get(Calendar.HOUR_OF_DAY)+1;JPanelresult=newJPanel();result.setLayout(newFlowLayout());result.setBackground(controlLineColor);yearSpin=newJSpinner(newSpinnerNumberModel(currentYear,currentYear,lastYear,1));yearSpin.setPreferredSize(newDimension(48,20));yearSpin.setName("Year");yearSpin.setEditor(newJSpinner.NumberEditor(yearSpin,"####"));yearSpin.addChangeListener(this);result.add(yearSpin);JLabelyearLabel=newJLabel("年");yearLabel.setForeground(controlTextColor);result.add(yearLabel);monthSpin=newJSpinner(newSpinnerNumberModel(currentMonth,currentMonth,12,1));monthSpin.setPreferredSize(newDimension(35,20));monthSpin.setName("Month");monthSpin.addChangeListener(this);result.add(monthSpin);JLabelmonthLabel=newJLabel("月");monthLabel.setForeground(controlTextColor);result.add(monthLabel);hourSpin=newJSpinner(newSpinnerNumberModel(currentHour,currentHour,23,1));hourSpin.setPreferredSize(newDimension(35,20));hourSpin.setName("Hour");hourSpin.addChangeListener(this);result.add(hourSpin);JLabelhourLabel=newJLabel("時");hourLabel.setForeground(controlTextColor);result.add(hourLabel);returnresult;}privateJPanelcreateWeekAndDayPanal(){Stringcolname[]={"日","一","二","三","四","五","六"};JPanelresult=newJPanel();//設(shè)置固定字體,以免調(diào)用環(huán)境改變影響界面美觀result.setFont(newFont("宋體",Font.PLAIN,12));result.setLayout(newGridLayout(7,7));result.setBackground(Color.white);JLabelcell;for(inti=0;i<7;i++){cell=newJLabel(colname[i]);cell.setHorizontalAlignment(JLabel.CENTER);if(i==0||i==6)cell.setForeground(weekendFontColor);elsecell.setForeground(weekFontColor);result.add(cell);}intactionCommandId=0;for(inti=0;i<6;i++)for(intj=0;j<7;j++){JButtonnumberButton=newJButton();numberButton.setBorder(null);numberButton.setHorizontalAlignment(SwingConstants.CENTER);numberButton.setActionCommand(String.valueOf(actionCommandId));numberButton.addActionListener(this);numberButton.setBackground(palletTableColor);numberButton.setForeground(dateFontColor);if(j==0||j==6)numberButton.setForeground(weekendFontColor);elsenumberButton.setForeground(dateFontColor);daysButton[i][j]=numberButton;result.add(numberButton);actionCommandId++;}returnresult;}privateJDialogcreateDialog(Frameowner){JDialogresult=newJDialog(owner,"日期時間選擇",true);result.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);result.getContentPane().add(this,BorderLayout.CENTER);result.pack();result.setSize(width,height);returnresult;}voidshowDateChooser(Pointposition){Frameowner=(Frame)SwingUtilities.getWindowAncestor(DateChooserJButton.this);if(dialog==null||dialog.getOwner()!=owner)dialog=createDialog(owner);dialog.setLocation(getAppropriateLocation(owner,position));flushWeekAndDay();dialog.show();}PointgetAppropriateLocation(Frameowner,Pointposition){Pointresult=newPoint(position);Pointp=owner.getLocation();intoffsetX=(position.x+width)-(p.x+owner.getWidth());intoffsetY=(position.y+height)-(p.y+owner.getHeight());if(offsetX>0){result.x-=offsetX;}if(offsetY>0){result.y-=offsetY;}returnresult;}privateCalendargetCalendar(){Calendarresult=Calendar.getInstance();result.setTime(getDate());returnresult;}privateintgetSelectedYear(){return((Integer)yearSpin.getValue()).intValue();}privateintgetSelectedMonth(){return((Integer)monthSpin.getValue()).intValue();}privateintgetSelectedHour(){return((Integer)hourSpin.getValue()).intValue();}privatevoiddayColorUpdate(booleanisOldDay){Calendarc=getCalendar();intday=c.get(Calendar.DAY_OF_MONTH);c.set(Calendar.DAY_OF_MONTH,1);intactionCommandId=day-2+c.get(Calendar.DAY_OF_WEEK);inti=actio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升自我的2024年心理咨詢師試題及答案
- 詩歌節(jié)奏感分析試題及答案
- 練習(xí)寫人敘事的技巧試題及答案
- 初中詩歌創(chuàng)作與分析題目試題及答案
- 康復(fù)理療中資料管理考題及答案
- 初中語文短文改錯題型試題及答案
- 2024年中國農(nóng)科院質(zhì)標(biāo)所招聘筆試真題
- 2024年合山市屬事業(yè)單位考試試卷
- 2024年德陽市什邡市研究生公費(fèi)師范畢業(yè)生考核招聘教師筆試真題
- 學(xué)生自立自強(qiáng)從日常勞動做起
- 中央廚房建設(shè)項目可行性研究報告
- 2025年輿情應(yīng)對面試試題及答案
- 山東省大教育聯(lián)盟學(xué)校2024-2025學(xué)年高三下學(xué)期開學(xué)檢測化學(xué)試題(含答案)
- 語文-福建省廈門市2025屆高中畢業(yè)班第二次質(zhì)量檢測(廈門二檢)試題和答案
- 2025屆浙江名校協(xié)作體高三語文考場高分作文點評:這種向往到底是人的苦處還是人的樂處呢
- 2025年浙江名校協(xié)作體高三語文2月聯(lián)考作文題分析+素材+范文:這種向往到底是人的苦處還是人的樂處呢
- 2025年云南省高職單招《職測》高頻必練考試題庫400題(含答案)
- 新教科版一年級科學(xué)下冊第一單元第6課《哪個流動得快》課件
- 2025年新人教PEP版英語三年級下冊全冊課時練習(xí)
- 2025年廣西旅發(fā)置業(yè)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 全國職業(yè)院校技能大賽高職組(商務(wù)數(shù)據(jù)分析賽項)備賽試題及答案
評論
0/150
提交評論