1、Java课程设计记事本Java语言程序设计B报 告 班级: 学号: 姓名: 成绩: 2012年1月日历记事本1、题目要求: 带有日程提醒功能的日历: 1、显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期; 2、定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框;3、查询信息:用户可以查询到某个月的所有的提示信息。二、编程语言和运行环境 整个程序是在Eclipse环境下编写的,采用的语言为java语言三、编程思想创建主类CalendarPad控制整个程序的调控与连接,该类负责创建本日历记事本程序
2、的主窗口,含有main方法,程序从该类开始执行。并创建Year、Month、NotePad三个类分别负责年份、月份以及记事本的创建及管理。CalendarPad模块负责该类负责创建本日历记事本程序的主窗口,含有 main方法,程序从该类开始执行; Year模块负责管理创建年份的对象; Month模块负责管理创建月份的对象;NotePad模块负责创建记事本。流程图(如下所示)4、设计目的本Java程序设计是为了帮助我们深入学习掌握Java语言,熟练运用这个工具而设立的课程。通过课程设计各个项目的综合训练,加强我们对JAVA语言的理解,检验我们对专业理论知识理解与掌握的程度,锻炼学生综合运用JAV
3、A程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用。同时也满足了大多数同学对于一款简单易用的日记本软件的需求。五、程序运行截图6、源程序 该类负责创建本日历记事本程序的主窗口,含有main方法,程序从该类开始执行:import java.util.Calendar;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.Hashtable;public class CalendarPad extends JFrame imp
4、lements MouseListener super(周鹏的课程设计日历记事本); int year,month,day; Hashtable hashtable; File file; JTextField showDay; JLabel title; Calendar 日历; int 星期几; NotePad notepad=null; Month 负责改变月; Year 负责改变年; String 星期=周日,周一,周二,周三,周四,周五,周六; JPanel leftPanel,rightPanel; public CalendarPad(int year,int month,int
5、 day) leftPanel=new JPanel(); JPanel leftCenter=new JPanel(); JPanel leftNorth=new JPanel(); leftCenter.setLayout(new GridLayout(7,7); rightPanel=new JPanel(); this.year=year; this.month=month; this.day=day; 负责改变年=new Year(this); 负责改变年.setYear(year); 负责改变月=new Month(this); 负责改变月.setMonth(month); tit
6、le=new JLabel7; showDay=new JTextField42; for(int j=0;j7;j+) titlej=new JLabel(); titlej.setText(星期j); titlej.setBorder(BorderFactory.createRaisedBevelBorder(); leftCenter.add(titlej); title0.setForeground(Color.red); title6.setForeground(Color.blue); for(int i=0;i42;i+) showDayi=new JTextField(); s
7、howDayi.addMouseListener(this); showDayi.setEditable(false); leftCenter.add(showDayi); 日历=Calendar.getInstance(); Box box=Box.createHorizontalBox(); box.add(负责改变年); box.add(负责改变月); leftNorth.add(box); leftPanel.setLayout(new BorderLayout(); leftPanel.add(leftNorth,BorderLayout.NORTH); leftPanel.add(
8、leftCenter,BorderLayout.CENTER); leftPanel.add(new Label(请在年份输入框输入所查年份(负数表示公元前),并回车确定), BorderLayout.SOUTH) ; leftPanel.validate(); Container con=getContentPane(); JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel,rightPanel); con.add(split,BorderLayout.CENTER); con.validate();
9、hashtable=new Hashtable(); file=new File(日历记事本.txt); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(hashtable); objectOut.close(); out.close(); catch(IOException e) notepad=new NotePad(this); righ
10、tPanel.add(notepad); 设置日历牌(year,month); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setVisible(true); setBounds(100,50,524,285); validate(); public void 设置日历牌(int year,int month) 日历.set(year,month-1,1); 星期几=日历.get(Calendar.DAY_OF_WEEK)-1; if(mont
11、h=1|month=2|month=3|month=5|month=7 |month=8|month=10|month=12) 排列号码(星期几,31); else if(month=4|month=6|month=9|month=11) 排列号码(星期几,30); else if(month=2) if(year%4=0&year%100!=0)|(year%400=0) 排列号码(星期几,29); else 排列号码(星期几,28); public void 排列号码(int 星期几,int 月天数) for(int i=星期几,n=1;i星期几+月天数;i+) showDayi.setT
12、ext(+n); if(n=day) showDayi.setForeground(Color.green); showDayi.setFont(new Font(TimesRoman,Font.BOLD,20); else showDayi.setFont(new Font(TimesRoman,Font.BOLD,12); showDayi.setForeground(Color.black); if(i%7=6) showDayi.setForeground(Color.blue); if(i%7=0) showDayi.setForeground(Color.red); n+; for
13、(int i=0;i星期几;i+) showDayi.setText(); for(int i=星期几+月天数;i42;i+) showDayi.setText(); public int getYear() return year; public void setYear(int y) year=y; notepad.setYear(year); public int getMonth() return month; public void setMonth(int m) month=m; notepad.setMonth(month); public int getDay() return
14、 day; public void setDay(int d) day=d; notepad.setDay(day); public Hashtable getHashtable() return hashtable; public File getFile() return file; public void mousePressed(MouseEvent e) JTextField source=(JTextField)e.getSource(); try day=Integer.parseInt(source.getText(); notepad.setDay(day); notepad
15、.设置信息条(year,month,day); notepad.设置文本区(null); notepad.获取日志内容(year,month,day); catch(Exception ee) public void mouseClicked(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public static void main(String args) Calendar c
16、alendar=Calendar.getInstance(); int y=calendar.get(Calendar.YEAR); int m=calendar.get(Calendar.MONTH)+1; int d=calendar.get(Calendar.DAY_OF_MONTH); new CalendarPad(y,m,d); 该类负责管理创建月份的对象import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Month extends Box implements ActionList
17、ener int month; JTextField showMonth=null; JButton 下月,上月; CalendarPad 日历; public Month(CalendarPad 日历) super(BoxLayout.X_AXIS); this.日历=日历; showMonth=new JTextField(2); month=日历.getMonth(); showMonth.setEditable(false); showMonth.setForeground(Color.blue); showMonth.setFont(new Font(TimesRomn,Font.B
18、OLD,16); 下月=new JButton(下月); 上月=new JButton(上月); add(上月); add(showMonth); add(下月); 上月.addActionListener(this); 下月.addActionListener(this); showMonth.setText(+month); public void setMonth(int month) if(month=1) this.month=month; else this.month=1; showMonth.setText(+month); public int getMonth() retu
19、rn month; public void actionPerformed(ActionEvent e) if(e.getSource()=上月) if(month=2) month=month-1; 日历.setMonth(month); 日历.设置日历牌(日历.getYear(),month); else if(month=1) month=12; 日历.setMonth(month); 日历.设置日历牌(日历.getYear(),month); showMonth.setText(+month); else if(e.getSource()=下月) if(month12) month=m
20、onth+1; 日历.setMonth(month); 日历.设置日历牌(日历.getYear(),month); else if(month=12) month=1; 日历.setMonth(month); 日历.设置日历牌(日历.getYear(),month); showMonth.setText(+month); 该类负责管理创建年份的对象import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Year extends Box implements ActionListener int ye
21、ar; JTextField showYear=null; JButton 明年,去年; CalendarPad 日历; public Year(CalendarPad 日历) super(BoxLayout.X_AXIS); showYear=new JTextField(4); showYear.setForeground(Color.blue); showYear.setFont(new Font(TimesRomn,Font.BOLD,14); this.日历=日历; year=日历.getYear(); 明年=new JButton(下年); 去年=new JButton(上年);
22、add(去年); add(showYear); add(明年); showYear.addActionListener(this); 去年.addActionListener(this); 明年.addActionListener(this); public void setYear(int year) this.year=year; showYear.setText(+year); public int getYear() return year; public void actionPerformed(ActionEvent e) if(e.getSource()=去年) year=yea
23、r-1; showYear.setText(+year); 日历.setYear(year); 日历.设置日历牌(year,日历.getMonth(); else if(e.getSource()=明年) year=year+1; showYear.setText(+year); 日历.setYear(year); 日历.设置日历牌(year,日历.getMonth(); else if(e.getSource()=showYear) try year=Integer.parseInt(showYear.getText(); showYear.setText(+year); 日历.setYea
24、r(year); 日历.设置日历牌(year,日历.getMonth(); catch(NumberFormatException ee) showYear.setText(+year); 日历.setYear(year); 日历.设置日历牌(year,日历.getMonth(); 该类负责创建记事本import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.event.*;import java.io.*;public class NotePad ex
25、tends JPanel implements ActionListener JTextArea text; JButton 保存日志,删除日志; Hashtable table; JLabel 信息条; int year,month,day; File file; CalendarPad calendar; public NotePad(CalendarPad calendar) this.calendar=calendar; year=calendar.getYear(); month=calendar.getMonth(); day=calendar.getDay(); table=ca
26、lendar.getHashtable(); file=calendar.getFile(); 信息条=new JLabel(+year+年+month+月+day+日,JLabel.CENTER); 信息条.setFont(new Font(TimesRoman,Font.BOLD,16); 信息条.setForeground(Color.blue); text=new JTextArea(10,10); 保存日志=new JButton(保存日志) ; 删除日志=new JButton(删除日志) ; 保存日志.addActionListener(this); 删除日志.addAction
27、Listener(this); setLayout(new BorderLayout(); JPanel pSouth=new JPanel(); add(信息条,BorderLayout.NORTH); pSouth.add(保存日志); pSouth.add(删除日志); add(pSouth,BorderLayout.SOUTH); add(new JScrollPane(text),BorderLayout.CENTER); public void actionPerformed(ActionEvent e) if(e.getSource()=保存日志) 保存日志(year,month
28、,day); else if(e.getSource()=删除日志) 删除日志(year,month,day); public void setYear(int year) this.year=year; public int getYear() return year; public void setMonth(int month) this.month=month; public int getMonth() return month; public void setDay(int day) this.day=day; public int getDay() return day; public void 设置信息条(int year,int month,int day)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1