java buffer 记事本_GitHub - programmer-zhang/DuangCalender: 简易日历记事本(java+android端)...

在设计日历记事本时,需要编写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.*里面的两个与显示设备有关的类:GraphicsEnvironment 和 GraphicsDevice。GraphicsEnvironment 为Java应用程序提供了特定平台的 GraphicsDevice 对象和 Font 对象集合。这些 GraphicsDevice 可以是各种本机和远端机器的资源,如屏幕、打印机或者是 Image Buffer ,甚至是 Graphics2D 绘图方法的目标对象。

本日历记事本共有4类:

CalendarPad.java:该java文件生成的类负责创建本日历记事本程序主窗口。该类含有main方法, 程序从该类开始执行。

Year.class:该文件负责创建管理年份的对象。

Month.class:该文件负责创建管理月份对象。

NotePad.class:该文件负责创建记事本。

CalendarPad类

主要成员变量(属性)

成员变量描述变量类型名称

年、月、日intYear,month,day

保存日志的散列表Hashtablehashtable

存放散列表的文件Filefile

显示日期JTextField[]showDay

日历对象Calendarcalendar

记事本对象NotePadnotepad

月Monthchangemonth

年Yearchangeyear

主要方法

名称功能备注

CalendarPad创建程序主窗口构造方法

setcalendar设置日历的年份、月份

arrynum排列月份中的号码

mousePressed处理MouseEvent事件接口方法

mian程序开始运行

记事本NotePad类

主要成员变量(属性)

描述变量类型名称

文本输入区JTextAreatext

保存、删除日志的按钮ButtonSavedir,rmdir

保存日志的散列表Hashtabletable

保存散列表的文件Filefile

记录日志的年、月、日intyear,month,day

主要方法

名称功能备注

NotePad创建记事本对象构造方法

setYear设置年份

getYear获取年份

setMonth设置月份

getMonth获取月份

setDay设置日期

getDay获取日期

lookdir获取日志内容

savedir保存日志

rmdir删除日志

actionPerformed处理ActionEvent事件接口方法

年Year类

主要成员变量(属性)

描述变量类型名称

表示年份的整数(负数表示公元前)intyear

显示年份的文本条JTextFieldshowYear

负责增减年份的按钮JButtonNextyear,lastyear

主要方法

名称功能备注

Year创建“年”对象构造方法

setYear设置年份

getYear获取年份

actionPerformed处理ActionEvent事件接口方法

月 Month类

主要成员变量(属性)

描述变量类型名称

表示月份的整数

(负数表示公元前)intmonth

显示月份的文本条JTextFieldShowMonth

负责增减月份的按钮JButtonlastmonth,nextmonth

主要方法

名称功能备注

Month创建“月”对象构造方法

set Month 设置月份

get Month 获取月份

actionPerformed处理ActionEvent事件接口方法

你可能感兴趣的:(java,buffer,记事本)