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