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

📄 mlist.java

📁 飞信的j2me源代码
💻 JAVA
字号:
import java.util.Vector;
import javax.microedition.lcdui.Graphics;

class MList
{
    int traverseIndex;
    int paintIndex;
    int start;
    Vector items;
    private int topY;
    boolean isPaint;
    boolean isSelected;

    MList()
    {
        traverseIndex = 0;
        paintIndex = 0;
        start = 0;
        items = new Vector(1, 1);
        isPaint = true;
        isSelected = true;
    }

    public int getY()
    {
        return topY;
    }

    public void setY(int i)
    {
        topY = i;
    }

    public void paint(Graphics g)
    {
        if(!isPaint)
            return;
        if(items.size() == 0)
        {
            paintIndex = start = traverseIndex = 0;
            return;
        }
        if(start < 0)
            start = 0;
        int i = start + (Setting.DISPLAY_ITEM_NUM - 1);
        if(i > items.size() - 1)
        {
            i = items.size() - 1;
            start = i - (Setting.DISPLAY_ITEM_NUM - 1);
            if(start < 0)
                start = 0;
        }
        int j = topY + 1 + paintIndex * (Setting.ITEM_HEIGHT + 1);
        if(isSelected)
        {
            g.setColor(0x899bff);
            g.fillRect(1, j, Setting.WIDTH - 2, Setting.SELECT_ITEM_FILL_HEIGHT);
        }
        int k = topY + 1 + 1;
        Object obj = null;
        MListItem mlistitem1 = currentItem();
        if(isSelected)
            mlistitem1.selected = true;
        for(int l = start; l <= i; l++)
        {
            MListItem mlistitem = (MListItem)items.elementAt(l);
            mlistitem.paint(1, k, g);
            k = k + Setting.ITEM_HEIGHT + 1;
        }

        mlistitem1.selected = false;
    }

    public void addItems(Vector vector)
    {
        items.ensureCapacity(vector.size() + items.size());
        for(int i = 0; i < vector.size(); i++)
            items.addElement(vector.elementAt(i));

    }

    public void addItem(MListItem mlistitem)
    {
        items.insertElementAt(mlistitem, 0);
        start = paintIndex = traverseIndex = 0;
    }

    public void appendItem(MListItem mlistitem)
    {
        items.addElement(mlistitem);
    }

    public void up()
    {
        if(traverseIndex > 0)
            traverseIndex--;
        if(paintIndex > 0)
            paintIndex--;
        else
        if(paintIndex == 0)
            start--;
    }

    public void down()
    {
        if(traverseIndex < items.size() - 1)
            traverseIndex++;
        if(paintIndex < Setting.DISPLAY_ITEM_NUM - 1)
            paintIndex++;
        else
        if(paintIndex == Setting.DISPLAY_ITEM_NUM - 1)
            start++;
        if(items.size() < Setting.DISPLAY_ITEM_NUM && traverseIndex == items.size() - 1)
            paintIndex = traverseIndex;
    }

    public void pageDown()
    {
        if(items.size() >= Setting.DISPLAY_ITEM_NUM)
        {
            traverseIndex = traverseIndex + Setting.DISPLAY_ITEM_NUM;
            start = start + Setting.DISPLAY_ITEM_NUM;
            if(start > items.size() - Setting.DISPLAY_ITEM_NUM)
            {
                start = items.size() - Setting.DISPLAY_ITEM_NUM;
                traverseIndex = items.size() - 1;
                paintIndex = Setting.DISPLAY_ITEM_NUM - 1;
            }
        }
    }

    public void pageUp()
    {
        if(items.size() >= Setting.DISPLAY_ITEM_NUM)
        {
            traverseIndex = traverseIndex - Setting.DISPLAY_ITEM_NUM;
            start = start - Setting.DISPLAY_ITEM_NUM;
            if(start < 0)
                home();
        }
    }

    public void home()
    {
        start = 0;
        traverseIndex = 0;
        paintIndex = 0;
    }

    public void end()
    {
        traverseIndex = items.size() - 1;
        if(items.size() < Setting.DISPLAY_ITEM_NUM)
        {
            paintIndex = traverseIndex;
            start = 0;
        } else
        {
            paintIndex = Setting.DISPLAY_ITEM_NUM - 1;
            start = items.size() - Setting.DISPLAY_ITEM_NUM;
        }
    }

    public MListItem currentItem()
    {
        return items.size() != 0 ? (MListItem)items.elementAt(traverseIndex) : null;
    }

    private MListItem getItemByObjectOnItem(Object obj)
    {
        MListItem mlistitem = null;
        Object obj1 = null;
        int i;
        for(i = items.size() - 1; i >= 0; i--)
        {
            mlistitem = (MListItem)items.elementAt(i);
            obj1 = mlistitem.getObject();
            if(obj.equals(obj1))
                return mlistitem;
        }

        return mlistitem;
    }

    public MListItem deleteLastItem()
    {
        Object obj = items.lastElement();
        items.removeElementAt(items.size() - 1);
        start = paintIndex = traverseIndex = 0;
        return (MListItem)obj;
    }

    public boolean deleteItem(MListItem mlistitem)
    {
        start = paintIndex = traverseIndex = 0;
        return items.removeElement(mlistitem);
    }

    public void moveItem(MListItem mlistitem, int i)
    {
        int j = items.indexOf(mlistitem);
        if(j != -1 && j != i)
        {
            Object obj = items.elementAt(j);
            items.removeElementAt(j);
            items.insertElementAt(obj, i);
            start = paintIndex = traverseIndex = 0;
        }
    }

    public int size()
    {
        return items.size();
    }

    public boolean isEnd()
    {
        return traverseIndex == size() - 1 || size() == 0;
    }

    public boolean isHome()
    {
        return traverseIndex == 0 || size() == 0;
    }
}

⌨️ 快捷键说明

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