📄 itemtable.java
字号:
//ItemTable.java
//实现日程记录的存储
package calendar;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class ItemTable extends Hashtable
{
public ItemTable()
{
super();
}
//判断某日是否已经包含日程记录
public boolean hasItem(Calendar date)
{
String key=makeKey(date);
Vector array = (Vector)get(key);
if( array == null)
return false;
else
return true;
}
//通过日期得到在哈希表中表示当天的键值
protected String makeKey(Calendar date)
{
String key=date.get(Calendar.YEAR)+"/"+(date.get(Calendar.MONTH)+1)+"/"+date.get(Calendar.DAY_OF_MONTH);
return key;
}
//添加日程记录
protected void addItem(ScheduleItem item)
{//如果当天没有日程记录则创建Vector 对象
Calendar date=Calendar.getInstance();
date.setTime(item.itemTime);
String key=makeKey(date);
Vector array = (Vector)get(key);
if(array == null)
{
array = new Vector();
put(key, array);
}
array.addElement(item);
}
//删除日程记录
protected void delItem(ScheduleItem item)
{//如果删除该日程记录后当天没有记录存在,就从哈希表中清除当日Vector 对象
Calendar date=Calendar.getInstance();
date.setTime(item.itemTime);
String key=makeKey(date);
Vector array = (Vector)get(key);
array.removeElement(item);
if(array.size() ==0)
remove(key);
}
//从数据库中读入所有数据
public boolean loadData(CalendarStore db)
{
if(! db.isDbExist()) //如果记录文件不存在就创建
db.createDb();
if(db.openDb())
{//打开记录文件
RecordEnumeration enum=db.openAllRecords(false);
while(enum.hasNextElement())
{
try
{
byte[] src = enum.nextRecord();
ScheduleItem item = new ScheduleItem();
item.readBytes(src);
addItem(item);
}
catch(Exception e) { System.out.println(e.getMessage()); }
}
enum.destroy();
db.closeDb();
return true;
}
System.out.println("loadData error");
return false;
}
//将所有数据保存到记录文件中
public boolean saveData(CalendarStore db)
{//采用重建记录文件的方式来实现记录的保存
if(db.isDbExist()) //如果记录文件存在就删除
db.deleteDb();
if( !db.createDb() )
return false;
if(db.openDb())
{//打开记录文件
Enumeration enum = elements();
while(enum.hasMoreElements() )
{
Vector array = (Vector) enum.nextElement();
for(int i=0;i<array.size();i++)
{
try
{
ScheduleItem item = (ScheduleItem)array.elementAt(i);
byte[ ] data=item.getBytes();
db.addRecord(data, 0, data.length);
}
catch(Exception e) { System.out.println(e.getMessage()); }
}
}
db.closeDb();
return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -