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

📄 bqscreenform.java

📁 J2me唆哈的代码
💻 JAVA
字号:
/*
 * Created on 2005-9-21 by pcy
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package a.a.a.midp.lcdui;


import javax.microedition.lcdui.ItemStateListener;
import java.awt.*;
public class BQScreenForm extends BQScreenPanel {
    
    public static final long serialVersionUID=1;
    private static final int GROW_SIZE = 4;

    BQDisplayable displayable;
    
    private BQItem[] items;
    private int numOfItems;
    
    public BQScreenForm(BQDisplayable displayable) {
        super();
        this.displayable=displayable;
        this.setBackground(BQDisplayable.WHITE_COLOR);
        this.setLayout(new BorderLayout());
        this.setAutoscrolls(true);
        items=new BQItem[GROW_SIZE];
    }

    public int appndItem(BQItem item){
        if (item.getOwner() != null) {
            throw new IllegalStateException();
        }
        return insertImpl(numOfItems, item);
    }
    
    public void deleteItem(int itemNum){
        if (itemNum < 0 || itemNum >= numOfItems) {
            throw new IndexOutOfBoundsException();
        }

        BQItem deletedItem = items[itemNum];

        deletedItem.setOwner(null);

        numOfItems--;

        if (itemNum < numOfItems) {
            System.arraycopy(items, itemNum + 1, items, itemNum,
                             numOfItems - itemNum);
        }

        // Delete reference to the last item 
        // that was left after array copy
        items[numOfItems] = null;

        // The Form is clear; reset its state
        if (numOfItems == 0 && items.length > GROW_SIZE) {
            items = new BQItem[GROW_SIZE];                 // start fresh
        }

    }
    
    public void deleteAllItems(){
        if (numOfItems == 0) {
            return;
        }

        for (int x = 0; x < numOfItems; x++) {
            items[x].setOwner(null);
            items[x] = null;
        }
        if (items.length > GROW_SIZE) {
            items = new BQItem[GROW_SIZE];                     // start fresh
        }

        numOfItems = 0;

        this.removeAll();
    }

    public void insertItemByIndex(int itemNum, BQItem item){
        if (item.getOwner() != null) {
            throw new IllegalStateException();
        }
        if (itemNum < 0 || itemNum > numOfItems) {
            throw new IndexOutOfBoundsException();
        }
        this.insertImpl(itemNum,item);
    }
    
    public void setItemByIndex(int itemNum,
                    BQItem item){
        if (item.getOwner() != null) {
            throw new IllegalStateException();
        }
        if (itemNum < 0 || itemNum >= numOfItems) {
            throw new IndexOutOfBoundsException();
        }
        setImpl(itemNum, item, true);
    }
    
    public BQItem getItemByIndex(int itemNum){
        if (itemNum < 0 || itemNum >= numOfItems) {
            throw new IndexOutOfBoundsException();
        }
        return items[itemNum];
    }
    
    public void setItemStateListener(ItemStateListener iListener){
        
    }
    
    public int getTotalItemCount(){
        return numOfItems;
    }
    
    int insertImpl(int itemNum, BQItem item){

        if (items.length == numOfItems) {
            BQItem newItems[] = new BQItem[numOfItems + GROW_SIZE];
            System.arraycopy(items, 0, newItems, 0, itemNum);
            System.arraycopy(items, itemNum, newItems, itemNum + 1,
                             numOfItems - itemNum);
            items = newItems;
        } else {
            // if we're not appending
            if (itemNum != numOfItems) {
                System.arraycopy(items, itemNum, items, itemNum + 1,
                                 numOfItems - itemNum);
            }
        }

        numOfItems++;

        items[itemNum] = null;
        setImpl(itemNum, item, false);

        return itemNum;
    }
    
    void setImpl(int itemNum, BQItem item, boolean replace) {
        BQItem oldItem = items[itemNum];
        if (oldItem != null) {
            oldItem.setOwner(null);
        }
        item.setOwner((BQScreen)displayable);
        items[itemNum] = item;
        
        if(replace){
            this.remove(itemNum);
        }
        this.add(item,itemNum);
        reBounds();
    }

    private void reBounds(){
        int n=this.getComponentCount();
        int w=displayable.getDisplayWidth();
        int h=displayable.getDisplayHeight();
        int dh=20;
        int y=2;
        BQItem item;
        for(int i=0; i<n ; i++){
            item=(BQItem)this.getComponent(i);
            dh=item.getMinimumHeight();
            if(y+dh>h-5){
                dh=h-5-y;
            }
            item.setBounds(5,y,w-10,dh);
            item.reBounds();
            y+=dh+5;
        }
    }
}

⌨️ 快捷键说明

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