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

📄 listbox.java

📁 soure code for j2me browser
💻 JAVA
字号:
/* * Fire (Flexible Interface Rendering Engine) is a set of graphics widgets for creating GUIs for j2me applications.  * Copyright (C) 2006  Bluebird co (www.bluebird.gr) * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA *  *//* * Created on May 24, 2006 */package gr.bluevibe.fire.components;import java.util.Vector;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Font;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;public class ListBox extends Component{	private String id;			private boolean multiple=false;	private Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL);;	private int color=0x00000000;	private Integer bgColor=null;	private Integer filled = null;	private boolean border= false;	private Vector elements = new Vector();	private Image selectedBullet=null;	private Image bullet=null;		private int bulletW = 10;	private int bulletH = 10;			/* support vars */	private int pointerPos=-1;		public ListBox()	{	}		public void add(ListElement el)	{		el.setColor(color);		el.setFont(font);		el.setBgColor(bgColor);				elements.addElement(el);		int id = elements.size()-1;		el.set_componentID(id);	}		public void paint(Graphics g)	{		int width = getWidth();		int  height = getHeight();						if(filled!=null)		{			g.setColor(filled.intValue());			g.fillRect(0,0,width,height);		}				// draw each element.		int voffset=0;		for(int i =0;i<elements.size();++i)		{			ListElement el = (ListElement)elements.elementAt(i);			int trY = voffset;			int trX =bulletW;			if(el.isChecked())			{				if(selectedBullet!=null)				{					g.drawImage(selectedBullet,0,trY,Graphics.TOP|Graphics.LEFT);				}				else				{					g.setColor(0x0000FF00);					g.fillRoundRect(0+2,trY+2,bulletW-4,bulletH-4,10,10);				}			}			else			{				if(bullet!=null)				{					g.drawImage(bullet,0,trY,Graphics.TOP|Graphics.LEFT);				}			}			g.translate(trX,trY);			if(pointerPos==i) el.setOnPointer(true);			el.paint(g);			if(pointerPos==i) el.setOnPointer(false);			g.translate(-trX,-trY);			voffset+=el.getHeight();		}		if(border)		{			g.setColor(0x00000000);			g.drawRect(0,0,getWidth()-1,getHeight()-1);		}	}		public void validate()	{		int width = getWidth();		setMinWidth(width);		// kitame ta elements		int height=0;		for(int i =0 ;i<elements.size();++i)		{			Component c = (Component)elements.elementAt(i);			c.setWidth(width - bulletW);			c.setMinHeight(bulletH);			c.validate();			height+=c.getHeight();		}				setHeight(height);				if(getMinHeight()>getHeight())		{			setHeight(getMinHeight());		}	}		public boolean pointerEvent(int x, int y)	{		int tmpHeight=0,i;		for(i =0 ;i<elements.size();++i)		{			ListElement e = (ListElement)elements.elementAt(i);			tmpHeight+=e.getHeight();			if(tmpHeight>=y) break;		}		if(i<elements.size())		{			pointerPos=i;			check();			generateEvent();		}		return true;	}		public boolean keyEvent(int key)	{		switch(key)		{			case Canvas.UP:				if(pointerPos<=0) {pointerPos=-1 ;return false;}				pointerPos--;				return true;			case Canvas.DOWN:				if(pointerPos>=elements.size()-1) {pointerPos=elements.size() ;return false;}				pointerPos++;				return true;			case Canvas.FIRE:			{				if(pointerPos>=0 && pointerPos<elements.size())				{					check();				}				generateEvent();				return true;			}		}		return true;	}		private void check()	{		if(pointerPos<0 || pointerPos>=elements.size()) return;				ListElement e = (ListElement)elements.elementAt(pointerPos);		if(multiple)		{			e.setChecked(!e.isChecked());			return;		}		// mporoume na exoume mono ena checked.		if(e.isChecked()) return;		e.setChecked(true);				for(int i=0;i<pointerPos;++i)		{			((ListElement)(elements.elementAt(i))).setChecked(false);		}		for(int i=pointerPos+1;i<elements.size();++i)		{			((ListElement)(elements.elementAt(i))).setChecked(false);		}	}		public boolean isBorder()	{		return border;	}	public void setBorder(boolean border)	{		this.border = border;	}	public int getColor()	{		return color;	}	public void setColor(int color)	{		this.color = color;	}	public Integer getFilled()	{		return filled;	}	public void setFilled(Integer filled)	{		this.filled = filled;	}	public Font getFont()	{		return font;	}	public void setFont(Font font)	{		this.font = font;	}	public boolean isMultiple()	{		return multiple;	}	public void setMultiple(boolean multiple)	{		this.multiple = multiple;	}	public Integer getBgColor()	{		return bgColor;	}		public Vector getCheckedElements()	{ 		Vector res = new Vector();		for(int i =0;i<elements.size();++i)		{			ListElement e = (ListElement)elements.elementAt(i);			if(e.isChecked())			{				res.addElement(e);			}		}		return res;	}	public void setBgColor(Integer bgColor)	{		this.bgColor = bgColor;	}	public String getId()	{		return id;	}	public void setId(String id)	{		this.id = id;	}	public boolean isTraversable()	{		return true;			}	public Image getBullet()	{		return bullet;	}	public void setBullet(Image bullet)	{		this.bullet = bullet;		if(bullet!=null)		{			bulletW = bullet.getWidth();			bulletH = bullet.getHeight();		}	}	public Image getSelectedBullet()	{		return selectedBullet;	}	public void setSelectedBullet(Image selectedBullet)	{		this.selectedBullet = selectedBullet;	}}

⌨️ 快捷键说明

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