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

📄 customitemmidlet.java

📁 j2me 手机编程实例
💻 JAVA
字号:
package com.j2medev.sample.chapter3;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class CustomItemMidlet extends MIDlet {
    
    private Form form = new Form("UIDemo");
    private Display display = null;
    
    public void startApp() {
        if(display==null) {
            display = Display.getDisplay(this);
            form.append("你更擅长那个版本?\n");
            String[] strs = {"Java 2平台标准版", "Java 2平台企业版", "Java 2平台微型版"};
            form.append(new Table(strs));
        }
        display.setCurrent(form);
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
}

class Table extends CustomItem {
    
    private String[] elements;
    
    public Table(String[] elements) {
        super("");
        if(elements==null || elements.length==0)
            throw new IllegalArgumentException();
        this.elements = new String[elements.length];
        System.arraycopy(elements, 0,  this.elements, 0, elements.length);
    }
    //计算最佳内容区域的宽度
    protected int getPrefContentWidth(int height) {
        int max = 0;
        for(int i=0; i<elements.length; i++) {
            int w = Font.getDefaultFont().stringWidth(elements[i]);
            if(max<w) max=w;
        }
        return max + 4;
    }
    //计算最佳内容区域的高度
    protected int getPrefContentHeight(int width) {
        return getMinContentHeight();
    }
    
    protected void paint(Graphics g, int w, int h) {
        //使用白色填充整个屏幕
        g.setColor(0xffffff);
        g.fillRect(0, 0, w, h);
        g.setColor(0);
        
        Font font = Font.getDefaultFont();
        int fontHeight = font.getHeight();
        int lineHeight = fontHeight+1;
        //绘画表格和字符串数组
        for(int i=0; i<elements.length; i++) {
            g.drawLine(0, lineHeight*i, w-1, lineHeight*i);
            String s = elements[i];
            int strWidth = font.stringWidth(s);
            if(strWidth>w-4) {
                do {
                    s = s.substring(0, s.length()-1);
                    strWidth = font.stringWidth(s);
                }while(strWidth>w-4);
            }
            g.drawString(s, 2,  lineHeight*i+1, Graphics.LEFT|Graphics.TOP);
        }
        g.drawRect(0, 0, w-1, h-1);
    }
    //计算最小内容区域宽度
    protected int getMinContentWidth() {
        return Font.getDefaultFont().stringWidth("...") + 4;
    }
    //计算最小内容区域高度
    protected int getMinContentHeight() {
        return (Font.getDefaultFont().getHeight() + 1) * elements.length + 1;
    }
}

⌨️ 快捷键说明

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