⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itemtable.java

📁 J2ME MIDP 2.0 无线设备编程的一些源码
💻 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 + -