简易日历记事本源码(java+android端),含日历和日志记事本两部分

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

DuangCalender

简易日历记事本java+android端

完整代码下载地址简易日历记事本源码java+android端

1、本设计题目的主要内容

JAVA

  • duang日历记事本的包括日历和日志记事本两部分
  • 日历部分采用公历历法界面设计
    • 日期部分每行7天每列 5天可完全记录一个月中的所有天数。
    • 星期采用中文显示,每行的第一天为星期日。星期六、星期日显示为红色。
    • 当前日期显示背景为蓝色其它日期显示为黑色。
    • 年份通过负数表示公元前正数表示公元后。
    • 用户可通过使用鼠标点击按钮的方式改变日历的年份和月份。
  • 记事本部分提供输入、保存、显示、删除日志的功能。
    • 记事本可根据用户需要在任意日期添加记事本。
    • 用户输入的日志记录在本系统所在的目录保存为后缀名为.txt的文本文件。
    • 用户只要选定要查看日志的日期即可以通过鼠标点击显示日志的按钮来实现。
  • Duang日历记事本是基于java语言的程序。
  • Duang日历记事本分为两个大的模块即日历模块和记事本模块
    • 日历模块又分为日历显示模块和日历查询上年、下年和上月、下月模块
    • 记事本模块分为编辑模块和按钮模块保存和删除日志。

ANDROID:

  • DuangCalendar日历仅为日历APP。
  • 日历采用公历历法界面设计
    • 日期部分每行7天每列 5天可完全记录一个月中的所有天数。
    • 期采用中文显示,每行的第一天为周一当前日期显示背景为蓝色其它日期显示为黑色非本月显示为灰色。
    • 用户可通过点击按钮的方式改变日历的年份和月份。
  • DuangCalendar日历是基于XML语言的程序。
  • DuangCalendar日历分为日历面板和更改日历面板

2、设计思想与程序构架

整个设计及各核心子模块的流程框图

  • CalendarPad作为主函数的入口。调用NotePad类的方法完善自己的窗口。当对窗口的年份和月份进行改变时就会触发Year类和Month类里的触发器和方法从而达到日历备忘录的目的。

各核心子模块的编程思想及实现技术说明

  • 在设计日历记事本时需要编写4个Java类CalendarPad.class、Year.class、NotePad.class、month.class。

  • 日历记事本除了需要编写的上述3个Java所给出的类外还需要Java系统提供的一些重要的类如JTextField、JTextArea和File类。

  • 主类的实现技术

    • CalendarPad 类首先通过JPanel类创建用于布局的面板左面添加日历界面leftPanel日历界面右面添加记事本rightPanel。
    • 然后调用 CalendarPad 方法该方法有三个分别是 year, month, day 的整形参数。 该方法管理日历记事本的主界面。 在日历牌部分使用网格布局行数和列数均为 7。 其中第一行显示星期标题的标签后续六行显示日期的标签。
  • 号码排列的实现技术

    • 该方法包含两个整形参数分别是星期和月天数。
    • 该方法是通过setcalendar方法和arrynum方法将日期一次排列入日历牌的网格中日期显示的字体字体均为 TimesRoman并将星期六和星期日显示为红色。 将当前日期显示为蓝色背景大小为 20其它日期为黑色字体大小为 12。
  • 设置日历牌的实现技术

    • 该arrynum方法有两个整形参数分别是 year 和 month。
    • 该方法根据平、闰年以及每个月份的天数不同而以不同的方式将一个月中的每一天依次排入网格中。 当月份为 1、3、5、7、8、10 和 12 时每月包括 31 天当月份为 4、6、9、11 时每月包括30 天平年的 2 月为 28 天闰年的 2 月为29 天。
  • 记事本的实现技术描述如下

    • NotePad 类首先调用 NotePad 方法创建一个容器在这一容器中使用了边界布局管理器。
    • 在该布局的北部rightnouth是一个显示日期的信息条该信息条显示的信息使用的字体是 TimesRoman大小是 16 号。 该信息条显示的日期为用户所选定的日期。
    • 在布局管理器的中部是一个 10*10 的文本区域。 该文本区域用来输入和显示日志的内容。 在布局管理器的南部放置了两个按钮分别表示“保存日志”和“删除日志”。
    • 在用户使用鼠标点击这两个按钮时会调用 actionPerformed 方法以执行保存日志或删除日志的操作。
    • 执行保存日志的操作需要调用方法“savedir”。 该方法的参数为三个整形变量分别是:year, month, day。
    • 当用户点击保存日志按钮后该方法首先通过 showConfirmDialog方法弹出对话框询问用户是否保存日志如果用户选择“是”则该方法将日志内容添加到所选日期的hashtable散列表对象中然后将其存为文本文件保存在File方法建立的文本文件中。
    • 执行删除日志的操作需要调用方法“rmdir”。 该方法的参数同样为三个分别为 year, month, day 的整形变量。
    • 当用户点击删除日志按钮通过 actionPerformed 方法获得点击的动作该方法首先通过 showConfirmDialog 方法弹出对话框询问用户是否删除日志如果用户选择“是”则该方法首先到文件中读取散列表对象然后删除该对象以达到删除日志的目的。 如果该方法无法读取散列表对象即所选日期没有日志则弹出对话框通知用户当日没有日志记录。
    • 如果用户在选择了一个没有日志记录的日期后点击“删除日志”按钮系统会通过rm_text方法弹出对话框提示该日无日志记录。该类还有一个名为“lookdir”的方法。 该方法具有三个分别是 year, month, day 的整形参数。 当用户在日历牌中选定一个日期后该方法会判断该日期是否存在日志记录若有则弹出对话框询问用户是否要查看日志如果用户选择查看日志该方法则从带有日期项的散列表中获取日志内容并在文本区域显示出日志的内容。 如果该日期没有日志记录则在文本区域显示“无日志记录”。
    • 图形界面至少要有一个顶级Swing容器顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持;
    • 常用的顶级容器Frame框架表示主程序窗口JDialog对话框每个JDialog对象表示一个对话框对话框属于二级窗口JApplet小程序在浏览器内显示一个小程序界面一个框架包括边界、菜单栏、工具栏、状态栏以及中间占主要部分的窗格窗格也可以看作是一种面板但它是框架的一个组成部分组件不会直接放到框架上而是放在若干个面板上这些面板再放到窗格上用框架对象的getContentPane()函数来获得窗格再调用窗格的add()函数放置面板。
    public static void main(String[ ]args){
    JFrame frame=new JFrame("SwingApplication");
    JPanel panel1=new JPanel();
    frame.getContentPane().add(panel1,BorderLayout.CENTER);
    
    • 关键是 java.awt.*里面的两个与显示设备有关的类GraphicsEnvironmentGraphicsDeviceGraphicsEnvironment 为Java应用程序提供了特定平台的 GraphicsDevice 对象和 Font 对象集合。这些 GraphicsDevice 可以是各种本机和远端机器的资源如屏幕、打印机或者是 Image Buffer ,甚至是 Graphics2D 绘图方法的目标对象。
  • 本日历记事本共有4类

    • CalendarPad.java该java文件生成的类负责创建本日历记事本程序主窗口。该类含有main方法, 程序从该类开始执行。
    • Year.class该文件负责创建管理年份的对象。
    • Month.class该文件负责创建管理月份对象。
    • NotePad.class该文件负责创建记事本。
  • CalendarPad类

  • 主要成员变量(属性)

    • 成员变量描述 变量类型 名称
    • 年、月、日 int Year,month,day
    • 保存日志的散列表 Hashtable hashtable
    • 存放散列表的文件 File file
    • 显示日期 JTextField[] showDay
    • 日历对象 Calendar calendar
    • 记事本对象 NotePad notepad
    • 月 Month changemonth
    • 年 Year changeyear
  • 主要方法

    • 名称 功能 备注
    • CalendarPad 创建程序主窗口 构造方法
    • setcalendar 设置日历的年份、月份
    • arrynum 排列月份中的号码
    • mousePressed 处理MouseEvent事件 接口方法
    • mian 程序开始运行
  • 记事本NotePad类

  • 主要成员变量(属性)

    • 描述 变量类型 名称
    • 文本输入区 JTextArea text
    • 保存、删除日志的按钮 Button Savedir,rmdir
    • 保存日志的散列表 Hashtable table
    • 保存散列表的文件 File file
    • 记录日志的年、月、日 int yearmonthday
  • 主要方法

    • 名称 功能 备注
    • NotePad 创建记事本对象 构造方法
    • setYear 设置年份
    • getYear 获取年份
    • setMonth 设置月份
    • getMonth 获取月份
    • setDay 设置日期
    • getDay 获取日期
    • lookdir 获取日志内容
    • savedir 保存日志
    • rmdir 删除日志
    • actionPerformed 处理ActionEvent事件接口方法
  • 年Year类

  • 主要成员变量(属性)

    • 描述 变量类型 名称
    • 表示年份的整数负数表示公元前 int year
    • 显示年份的文本条 JTextField showYear
    • 负责增减年份的按钮 JButton Nextyear,lastyear
  • 主要方法

    • 名称 功能 备注
    • Year 创建“年”对象 构造方法
    • setYear 设置年份
    • getYear 获取年份
    • actionPerformed 处理ActionEvent事件接口方法
  • 月 Month类

  • 主要成员变量(属性)

    • 描述 变量类型 名称
    • 表示月份的整数
    • 负数表示公元前 int month
    • 显示月份的文本条 JTextField ShowMonth
    • 负责增减月份的按钮 JButton lastmonthnextmonth
  • 主要方法

    • 名称 功能 备注
    • Month 创建“月”对象 构造方法
    • set Month 设置月份
    • get Month 获取月份
    • actionPerformed 处理ActionEvent事件接口方法
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Javaandroid