预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用Java实现日历记事本 1.实验目的 掌握RandomAccessFile类的使用;掌握字符输入、输出流和缓冲输入、输出流的使用。 2.实验要求 实验前,应事先熟悉相关知识点,拟出相应的实验操作步骤,明确实验目的和要求;实验过程中,服从实验指导教师安排,遵守实验室的各项规章制度,爱护实验仪器设备;实验操作完成后,认真书写实验报告,总结实验经验,分析实验过程中出现的问题。 3.实验内容 编程实现日历记事本。具体要求如下: (1)该日历可以通过在文本框中输入年份和月份设置日期,也可按年前后翻动,用鼠标左键单击“上年”和“下年”按钮,将当前日历的年份减一和加一。还可以在某年内按月前后翻动,用鼠标左键单击“上月”和“下月”按钮,将日历的月份减一和加一。 (2)左键单击日历上的日期,可以通过右侧的记事本(文本区)编辑有关日志,并将日志保存到一个文件,该文件的名字是由当前日期组成的字符序列。用户可以读取、删除某个日期的日志,也可以继续向某个日志添加新的内容。在保存、删除和读取日志时都会先弹出一个确认对话框,以确认保存、删除和读取操作。 (3)当某个日期有日志时,该日期以粗体16号字显示,表明这个日期有日志;当用户删除某个日期的日志后,该日期恢复原来的外观。 实现效果图(参考)如下: 提示:(1)组件调用publicvoidsetFont(Fontf)方法可以设置组件上的字体,Font类的构造方法为:publicFont(Stringname,intstyle,intsize),其中name是字体的名字,style决定字体的样式(如Font.BOLD表示粗体)size决定字体的大小。(具体请参考JDKAPI) (2)当左键单击日历上的日期时,如要获取该日期,可通过处理该组件上的鼠标事件来实现。 4.实验步骤、实施过程、关键代码、实验结果及分析说明等 1.CalendarPad类 (1)进行整体布局,建立日历记事本文件,设置日历卡,把日期按星期顺序排列,并用窗口监视器实现。 (2)用窗口监视器实现,结果如下: 2.Notepad类 (1)对日期的设置和获取,设置信息条,对文本框进行设置,保存日志、删除日志和读取日志按钮的事件实现。 (2)保存日志按钮事件实现如下: (3)读取日志按钮事件实现如下: (4.)删除日志按钮事件实现如下: Year类 (1)输入年份可以实现输出,给上下年按钮设置监视器,对上下年按钮事件的实现。 (2)其结果如下: 4.Month类 (1)设置上下月监视器,对上下月按钮的事件实现,区分闰年和平年,对天数不同的月份进行分类。 (2)其结果如下: (续上页,可加页) 各个类的源代码如下: CalendarPad类: //CalendarPad.java importjava.util.Calendar; importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; importjava.io.*; importjava.util.Hashtable; publicclassCalendarPadextendsJFrameimplementsMouseListener,ActionListener{ intyear,month,day; Hashtablehashtable; JButtonSave,Delete,Read; Filefile; JTextFieldshowDay[]; JLabeltitle[]; CalendarDate; intWeekday; NotePadnotepad=null; MonthChangeMonth; YearChangeYear; Stringweek[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; JPanelleftPanel,rightPanel; publicCalendarPad(intyear,intmonth,intday){ leftPanel=newJPanel(); JPanelleftCenter=newJPanel(); JPanelleftNorth=newJPanel(); leftCenter.setLayout(newGridLayout(7,7)); rightPanel=newJPanel(); this.year=year; this.month=month; this.day=day; ChangeYear=newYear(this); ChangeYear.setYear(year); ChangeMonth=newMonth(this); ChangeMonth.setMont