ExpandList.java
package com.skystudio.ExpandList;
public class ExpandListItem { public ExpandListItem(Object content,String imgPath,String selectImgPath,String Label,int type,boolean ifselected){ this.selectImgPath=selectImgPath; this.imagePath=imgPath; this.content=content; this.label=Label; this.type=type; this.ifselected=ifselected; } /** * 默认图片 */ private String imagePath=""; /* * 激活图片,如果为空说明此图片无效 */ private String selectImgPath=null; /** * 组 */ public static int GROUP=1; /** * 记录 */ public static int ITEM=0; /** * 是否选中 */ private boolean ifselected=false; /** * 显示Label */ private String label; /** * 类型:组,记录 */ private int type; /** * 存储的对象 */ private Object content; public Object getContent() { return content; } public void setContent(Object content) { this.content = content; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public int getType() { return type; } public void setType(int type) { this.type = type; } public boolean Ifselected() { return ifselected; } public void setIfselected(boolean ifselected) { this.ifselected = ifselected; } public String toString() { return this.label+" "; } public String getImagePath() { return imagePath; } public void setImagePath(String imagePath) { this.imagePath = imagePath; } public String getSelectImgPath() { return selectImgPath; } public void setSelectImgPath(String selectImgPath) { this.selectImgPath = selectImgPath; } }
--------------------------------------------------------------------------------
package com.skystudio.ExpandList;
import java.util.Vector;
import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.List;
import com.skystudio.ui.toolkit.Util;
/** * @author sky * */ public class ExpandList extends List implements CommandListener { private Vector itemList = new Vector();
private ExpandListItem currentSelectedObject = null;
private int currentSelectedIndex = -1;
private Vector appearHookList = new Vector();
public ExpandList(String title, int type, Vector itemList) { super(title, type); this.itemList = itemList; this.setCommandListener(this); LoadList(); }
public void appendItem(ExpandListItem item, Image icon, boolean ifSub) { appearHookList.addElement(item); System.out.println("Add current display list:" + item); if (!ifSub) { this.append(item.getLabel(), icon); } else { this.append(" " + item.getLabel(), icon); } }
public void Init() { int count = this.size(); for (int i = 0; i < count; i++) { this.delete(0); } this.appearHookList.removeAllElements(); System.out.println("Now itemList:" + this.itemList); }
public void LoadList() { Init(); for (int i = 0; i < itemList.size(); i++) { ExpandListItem elItem = (ExpandListItem) itemList.elementAt(i); if (elItem.getType() == ExpandListItem.GROUP) { Image icon = Util.getImage(elItem.getImagePath()); /** * @Debug */ if (elItem.Ifselected()) { if (elItem.getSelectImgPath() != null) { icon = Util.getImage(elItem.getSelectImgPath()); } System.out.println("Add Parent Node:"); this.appendItem(elItem, icon, false); Vector group = (Vector) elItem.getContent(); for (int j = 0; j < group.size(); j++) { ExpandListItem item = (ExpandListItem) group.elementAt(j); Image ic = Util.getImage(item.getImagePath()); System.out.println("Add Sub Node:"); this.appendItem(item, ic, true); } } else { System.out.println("Add Leave Node:"); this.appendItem(elItem, icon, false); } } else if (elItem.getType() == ExpandListItem.ITEM) { Image icon = Util.getImage(elItem.getImagePath()); this.appendItem(elItem, icon, false); } } if (this.currentSelectedIndex != -1) { this.setSelectedIndex(currentSelectedIndex, true); } }
public Vector getItemList() { return itemList; }
public void setItemList(Vector itemList) { this.itemList = itemList; }
public void commandAction(Command arg0, Displayable arg1) { if (arg0 == List.SELECT_COMMAND) { /** * Set Current List Selected status */ this.currentSelectedIndex = this.getSelectedIndex(); System.out.println(this.appearHookList);
this.currentSelectedObject = (ExpandListItem) this.appearHookList.elementAt(currentSelectedIndex);
int indexInItemList = this.itemList.indexOf(this.appearHookList.elementAt(this.getSelectedIndex())); System.out.println(" Selected: " + currentSelectedIndex + " " + this.currentSelectedObject + " indexInItemList:" + indexInItemList); /** * */ if (this.currentSelectedObject.getType() == ExpandListItem.GROUP) { if (this.currentSelectedObject.Ifselected() == false) {// Previous // item // status // is // contractive,need // to be // expanded. System.out.println(this.currentSelectedObject.Ifselected()); this.itemList.removeElementAt(indexInItemList); this.currentSelectedObject.setIfselected(true); this.itemList.insertElementAt(currentSelectedObject, indexInItemList); } else { this.itemList.removeElementAt(indexInItemList); this.currentSelectedObject.setIfselected(false); this.itemList.insertElementAt(currentSelectedObject, indexInItemList); } this.Init(); this.LoadList(); } else { if (this.currentSelectedObject.getSelectImgPath() != null) { if (this.currentSelectedObject.Ifselected() == false) { Image icon = Util.getImage(this.currentSelectedObject.getSelectImgPath()); System.out.println(this.currentSelectedObject.Ifselected()); this.itemList.removeElementAt(indexInItemList); this.currentSelectedObject.setIfselected(true); this.itemList.insertElementAt(currentSelectedObject,indexInItemList); this.delete(this.currentSelectedIndex); this.insert(this.currentSelectedIndex, this.currentSelectedObject.getLabel(), icon); } else { Image icon = Util.getImage(this.currentSelectedObject.getImagePath()); this.itemList.removeElementAt(indexInItemList); this.currentSelectedObject.setIfselected(false); this.itemList.insertElementAt(currentSelectedObject,indexInItemList); this.delete(this.currentSelectedIndex); this.insert(this.currentSelectedIndex, this.currentSelectedObject.getLabel(), icon); } this.setSelectedIndex(this.currentSelectedIndex,true); } } } } } |
相关推荐
j2me中用canvas实现的目录树代码
本程序实现了在J2ME中的备忘录的增加记录、删除记录、修改记录以及查询记录的功能。
J2me中文教程.pdf J2me中文教程.pdf
j2me中简单实现九宫格菜单,原理非常简单的。
在J2ME上实现平滑的资源加载进度条 txt文本 源码描述:首先,我把我要加载的资源按其加载量来定其需要的百几比,比如我要加载一个大文件,一个小文件,我就将大文件定为80%,小文件定为20%,也就是把100%分为了两份...
和大家共享一下用CANVAS来实现中文打字,真的不错哦!因为汉字太多,收录的字有限,我把工程放上来,大家觉得差什么字可以自己加!
这是我开发的J2ME实现画图程序,希望大家能互相学习交流
j2me 实现抛物线的两种方法 j2me 实现抛物线的两种方法 j2me 实现抛物线的两种方法 j2me 实现抛物线的两种方法 j2me 实现抛物线的两种方法
J2ME中文教程 不错的学习资料,刚开始学习的可以参考下!
在J2ME中运用MVC模式,建立了一个完整的电话通讯录
J2ME实现的list与form的界面的切换。适合初学J2ME的朋友参阅。
J2ME 中文api以及应用 J2ME 中文api以及应用.rar
J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码
j2me 文档 开发 官方 中文 j2me 文档 开发 官方 中文 j2me 文档 开发 官方 中文
J2ME实现的断点续传,解决下载文件问题
J2ME中电话记录储存的实现源码希望喜欢,顺便捞点分,呵呵
sun从J2ME中去除了J2SE中的Properties相关类,所以J2ME不能直接使用现成自带的包实现Properties的相关功能,这里将介绍如何在J2ME中实现类似于J2SE中的类Properties的功能!本文包含了详尽的说明加代码!
J2ME中文API J2ME中文API帮助文档
J2ME中文教程 J2ME中文教程
J2ME开发 J2ME开发 J2ME开发 J2ME开发