📄 calendarlistform.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 + -