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

📄 qlist.java

📁 j2me 高级UI
💻 JAVA
字号:
/**
 * 作者:cat 戚永城
 * 时间:2008-3-1
 * QQ:415898635
 * E-Mail:	415898635@qq.com
 * 			qyc_12345@163.com
 * 
 * */
package org.qui.conmponent;

import java.util.Vector;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import org.qui.container.QSelector;
import org.qui.event.ItemEvent;
import org.qui.event.ItemStateListener;
import org.qui.image.JiugongDiv;
import org.qui.info.Attribute;
import org.qui.info.Key;
import org.qui.manager.QComboItem;
import org.qui.manager.UIManager;

public class QList extends QComboItem {

	public QList(){
		super();
	}
	public QList(int x, int y, int width, int height) {
		super(x, y, width, height);
		onShowSelectedItemNum=-1;
		br=Attribute.text_backR;
		bg=Attribute.text_backG;
		bb=Attribute.text_backB;
		fr=Attribute.text_foreR;
		fg=Attribute.text_foreG;
		fb=Attribute.text_foreB;
	}

	private Vector items=new Vector();
	private Vector imgs=new Vector();
	private Vector imgs_str=new Vector();
	//onShowItemNum 在此实际显示的是选中的item-1(为了与comboBox统一)
	public void paint(Graphics g) {
		//填充区域
		g.setColor(br,bg,bb);
		g.fillRect(x + ui.offx, y + ui.offy, width, height);
		// paint background
		if (onShowSelectedItemNum + 1 >= 0) {
			JiugongDiv.drawJiuGong(g, UIManager.list_selector, x + ui.offx, y + ui.offy + (onShowSelectedItemNum + 1) * itemHeight, width,itemHeight);
		}
		// paint other items
		int clipx = g.getClipX();
		int clipy = g.getClipY();
		int clipwidth = g.getClipWidth();
		int clipheight = g.getClipHeight();
		g.setClip(x + ui.offx, y + ui.offy, width, height);
		g.setColor(fr, fg, fb);
		g.setFont(font);
		int length = items.size();
		for (int i = 0; i < length; i++) {
			if(imgs.elementAt(i)!=null){
				g.drawImage((Image)imgs.elementAt(i), x + ui.offx + 2, y + ui.offy + i* itemHeight, Graphics.LEFT|Graphics.TOP);
				g.drawString(items.elementAt(i).toString(), x + ui.offx + 2+((Image)imgs.elementAt(i)).getWidth(), y + ui.offy + i * itemHeight, Graphics.LEFT | Graphics.TOP);
			}else{
				g.drawString(items.elementAt(i).toString(), x + ui.offx + 2, y + ui.offy + i * itemHeight, Graphics.LEFT | Graphics.TOP);
			}
			
		}
		g.setClip(clipx, clipy, clipwidth, clipheight);
		//if focus
		if(focus){
			JiugongDiv.drawJiuGong(g, UIManager.light, x + ui.offx -8, y + ui.offy -8, width+16,height+16);
		}
	}


	public void drawFocus(Graphics g) {

	}
	
	public void setSelectedItem(int itemNum) {
		onShowSelectedItemNum = itemNum-1;
	}

	public void addItem(String item) {
		items.addElement(item);
		imgs_str.addElement(null);
		imgs.addElement(null);
		itemSum = items.size();
	}
	public void addItem(String item,String img) {
		items.addElement(item);
		imgs_str.addElement(img);
		imgs.addElement(null);
		itemSum = items.size();
	}
	public void setListData(Vector data){
		items=data;
		for(int i=0;i<data.size();i++){
			imgs_str.addElement(null);
			imgs.addElement(null);
		}
		itemSum = items.size();
	}

	public boolean removeItem(int index) {
		try {
			items.removeElementAt(index);
			imgs_str.removeElementAt(index);
			imgs.removeElementAt(index);
			itemSum = items.size();
			initItemImg();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}

	}
	private void initItemImg(){
		try {
			imgs.removeAllElements();
			for(int i=0;i<itemSum;i++){
				if(imgs_str!=null){
					Image img=Image.createImage(imgs_str.elementAt(i).toString());
					imgs.addElement(img);
				}else{
					imgs.addElement(null);
				}
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

	public void keyPressed(int keyCode) {
		super.keyPressed(keyCode);
		if (!ui.selector.inComboItem) {
			ui.selector.inComboItem = true;
		} else {
			if (keyCode == Key.LEFT || keyCode == Key.UP) {
				if (onShowSelectedItemNum > -1) {
					onShowSelectedItemNum--;
				}
			} else if (keyCode == Key.RIGHT || keyCode == Key.DOWN) {
				if (onShowSelectedItemNum < (itemSum - 2)) {
					onShowSelectedItemNum++;
				}
			} else if (keyCode == Key.FIRE) {
				ui.selector.inComboItem = false;
			}
		}

	}
	
	public void keyReleased(int keyCode) {
		super.keyReleased(keyCode); 
		itemStateChanged(keyCode);
	}
	
	public String getSelectedItem() {
		return items.elementAt(onShowSelectedItemNum+1).toString();
	}
}

⌨️ 快捷键说明

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