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

📄 calendarlistform.java

📁 J2ME MIDP 2.0 无线设备编程的一些源码
💻 JAVA
字号:
//CalendarListForm.java
//实现查看某日的日程列表
package calendar;
import java.util.*;
import javax.microedition.lcdui.*;

public class CalendarListForm extends Form implements ItemStateListener
{
    protected ChoiceGroup listCalendar;//显示某日的日程列表
    protected StringItem strDate;//显示日程的日期
    protected StringItem strName, strType, strMemo, strTime; //显示日程的名称,类型,说明和时间
    protected Vector itemArray=null;//内部数组,保存当天所有的日程记录
    //构造器
    public CalendarListForm()
    {
        super("List");
        //初始化Form 内所有Item 对象
        strDate = new StringItem("Date","");
        strDate.setLayout(Item.LAYOUT_NEWLINE_AFTER|Item.LAYOUT_CENTER|Item.LAYOUT_2);
        listCalendar = new ChoiceGroup("Items",Choice.POPUP);
        listCalendar.setLayout(Item.LAYOUT_NEWLINE_AFTER|Item.LAYOUT_EXPAND|Item.LAYOUT_2);
        strName = new StringItem("Name","");
        strName.setLayout(Item.LAYOUT_NEWLINE_AFTER|Item.LAYOUT_EXPAND|Item.LAYOUT_2);
        strType = new StringItem("Type","");
        strType.setLayout(Item.LAYOUT_NEWLINE_AFTER|Item.LAYOUT_EXPAND|Item.LAYOUT_2);
        strTime = new StringItem("Time","");
        strTime.setLayout(Item.LAYOUT_NEWLINE_AFTER|Item.LAYOUT_EXPAND|Item.LAYOUT_2);
        strMemo = new StringItem("Memo","");
        strMemo.setLayout(Item.LAYOUT_NEWLINE_AFTER|Item.LAYOUT_EXPAND|Item.LAYOUT_2);
        //添加对象到Form中
        append(strDate);
        append(listCalendar);
        append(new Spacer(10,4));//添加一个空行
        get(2).setLayout(Item.LAYOUT_NEWLINE_AFTER);
        append(strName);
        append(strType);
        append(strTime);
        append(strMemo);
        //设置状态改变事件处理对象
        setItemStateListener(this);
        //创建数组对象
        itemArray = new Vector();
    }
    public void reset(Vector itemAll,Calendar date)
    {//重置日程列表中所有条目
        listCalendar.deleteAll();
        itemArray.removeAllElements();
        if(itemAll != null)
        {
            for(int i=0;i<itemAll.size();i++)
            {//只添加日期相同的记录
                ScheduleItem item = (ScheduleItem)itemAll.elementAt(i);
                if(item.isDateMatch(date))
                {
                    itemArray.addElement(item);
                    listCalendar.append(item.itemName,null);//同时更新列表
                }
            }
        }
        strDate.setText(date.get(Calendar.YEAR) +"/"+(date.get(Calendar.MONTH)+1) +"/"+date.get(Calendar.DAY_OF_MONTH) );
        setDetail(); //修改日程后重新显示当前选中日程的详细内容
    }
    //更新现有日程记录
    public void update(ScheduleItem itemSel)
    {//利用对象本省保存的数据更新显示内容
        int idx = itemArray.indexOf(itemSel);
        ScheduleItem item = (ScheduleItem)itemArray.elementAt(idx);
        listCalendar.delete(idx);//删除原有记录并在原位置插入记录
        listCalendar.insert(idx, item.itemName,null);
        setDetail(); //修改日程后重新显示当前选中日程的详细内容
    }
    //添加新的日程记录
    public void add(ScheduleItem itemAdd)
    {
        itemArray.addElement(itemAdd);
        listCalendar.append(itemAdd.itemName,null);
        listCalendar.setSelectedIndex(listCalendar.size()-1,true);
        setDetail(); //增加日程后重新显示当前选中日程的详细内容
    }
    //删除当前选中的日程记录
    public ScheduleItem delSelectItem()
    {
        int idx = listCalendar.getSelectedIndex();
        if(idx <0)
            return null;
        listCalendar.delete(idx);
        ScheduleItem item = (ScheduleItem)itemArray.elementAt(idx);
        itemArray.removeElement(item);
        setDetail(); //删除日程后重新显示当前选中日程的详细内容
        return item;
    }
    //显示当前选中日程的详细内容
    protected void setDetail()
    {
        int idx = listCalendar.getSelectedIndex();
        if(idx >=0)
        {
            ScheduleItem item = (ScheduleItem)itemArray.elementAt(idx);
            strName.setText(item.itemName);
            strType.setText(item.getTypeName(item.itemType));
            strMemo.setText(item.itemMemo);
            Calendar cal = Calendar.getInstance();
            cal.setTime(item.itemTime);
            strTime.setText(cal.get(Calendar.HOUR)+":"+cal.get(Calendar.MINUTE));
            if(cal.get(Calendar.AM_PM) == Calendar.AM)
            	strTime.setText(strTime.getText()+ " AM");
            else
            	strTime.setText(strTime.getText()+ " PM");
            cal=null;
        }
        else
        {//没有日程被选中
            strName.setText("");
            strType.setText("");
            strMemo.setText("");
            strTime.setText("");
        }
    }
    //得到当前选中的日程记录对象
    public ScheduleItem getSelectedItem()
    {
        if(itemArray.size()==0)
            return null;
        return (ScheduleItem)itemArray.elementAt(listCalendar.getSelectedIndex());
    }
    //处理状态改变事件
    public void itemStateChanged(Item item)
    {
        if(item == listCalendar)
        {
            setDetail();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -