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

📄 jdcapp.java

📁 英语背单词联网版本
💻 JAVA
字号:
/* * JdcApp.java * * Created on 2003年6月25日, 下午4:06 */package handenglish;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import java.lang.*;import java.util.*;/** * * @author  Administrator * @version */public class JdcApp extends Canvas implements Runnable{    /**     * paint     */    public int STATUS_PLAY=1;    public int STATUS_WAITREPEAT=2;    public int STATUS_WAITWRITEWORD=3;    public int STATUS_WAITDELWORD=4;    public int STATUS_WAITHELP=5;    Thread m_thread;    boolean m_jugThread;    Midlet midlet;    //newjdc m_nowMainApp;    int m_unitId;//当前所播放的单元号 0开始    int m_wordId;    Vector m_unitContent;        int m_unitSize;    int m_nowSpeed;    int m_playSpeed=8;    Image m_readImg;        int m_status;        int m_unitType;//1-标准字库    StringBuffer sss,sss1;    String tempC,tempC1;            public JdcApp(Midlet midlet,int nowUnitType,int nowUnitId) {    	 setFullScreenMode( true );        m_thread=new Thread(this);        m_jugThread=false;        this.midlet=midlet;        m_unitType=nowUnitType;        m_unitId=nowUnitId;        m_unitContent=new Vector();        midlet.getUnit(nowUnitType,nowUnitId,m_unitContent);                try {            sss =new StringBuffer();            sss1=new StringBuffer();            m_readImg=Image.createImage("/handenglish/images/read.png");        }        catch(Exception e) {        }        beginNewPlay();    }    public void SetUnitId(int nowUnitId) {        m_unitId=nowUnitId;    }        public void drawSpell(Graphics g,String nowSpell,int nowX,int nowY,Image readImage) {        int tempReadX=nowX;        int tempY=nowY;                if (nowSpell.length()>0) {            g.drawString("[",tempReadX,tempY+1,Graphics.LEFT|Graphics.TOP);            tempReadX+=4;            int tLen = nowSpell.length();            for(int j=0;j< tLen;j++) {                char tempC=nowSpell.charAt(j);                if ((tempC>='0')&&(tempC<='9')) {                    int tempReadP=tempC-'0';                    if (tempReadP<1) {                        g.setClip(tempReadX,tempY,5,13);                        g.drawImage(readImage,tempReadX,tempY,Graphics.LEFT|Graphics.TOP);                        tempReadX+=7;                    }                    else                        if (tempReadP==1) {                            g.setClip(tempReadX,tempY,6,13);                            g.drawImage(readImage,tempReadX-5,tempY,Graphics.LEFT|Graphics.TOP);                            tempReadX+=8;                        }                        else                            if (tempReadP<5) {                                g.setClip(tempReadX,tempY,5,13);                                g.drawImage(readImage,tempReadX-(tempReadP-1)*5-6,tempY,Graphics.LEFT|Graphics.TOP);                                tempReadX+=7;                            }                            else                                if (tempReadP==5) {                                    g.setClip(tempReadX,tempY,9,13);                                    g.drawImage(readImage,tempReadX-(tempReadP-1)*5-6,tempY,Graphics.LEFT|Graphics.TOP);                                    tempReadX+=11;                                }                                else                                    if (tempReadP>5) {                                        g.setClip(tempReadX,tempY,5,13);                                        g.drawImage(readImage,tempReadX-(tempReadP-2)*5-6-9,tempY,Graphics.LEFT|Graphics.TOP);                                        tempReadX+=7;                                    }                }                else                    if (tempC=='=') {                        g.setClip(tempReadX,tempY,5,13);                        g.drawImage(readImage,tempReadX-8*5-6-9,tempY,Graphics.LEFT|Graphics.TOP);                        tempReadX+=7;                    }                    else                        if (tempC==';') {                            g.setClip(tempReadX,tempY,2,13);                            g.drawImage(readImage,tempReadX-9*5-6-9,tempY,Graphics.LEFT|Graphics.TOP);                            tempReadX+=3;                        }                        else {                            g.setClip(0,0,128,128);                            g.drawString(String.valueOf(tempC),tempReadX,tempY+1,Graphics.LEFT|Graphics.TOP);                            if ((tempC=='i')||(tempC=='l')||(tempC=='j')||(tempC=='\'')||(tempC==':')||(tempC=='r'))                                tempReadX+=4;                            else                                if ((tempC=='m')||(tempC=='w'))                                    tempReadX+=10;                                else                                    tempReadX+=6;                                                    }                            }            g.setClip(0,0,128,128);            g.drawString("]",tempReadX,tempY+1,Graphics.LEFT|Graphics.TOP);        }    }            public void paint(Graphics g) {        int tempY=5;        g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL));        g.setColor(0,0,0);        g.fillRect(0,0,128,128);        g.setColor(255,255,0);                if (m_unitSize>0) {            // StringBuffer sss,sss1;            sss.delete(0,sss.length() );            if(m_unitType==1)                //sss=new StringBuffer(                sss.append( m_unitId+1);            else                sss.append( m_unitSize);            //sss=new StringBuffer(String.valueOf(m_unitSize));            sss.append("-");            sss.append(m_wordId+1);            g.drawString(sss.toString(),5,tempY,Graphics.LEFT|Graphics.TOP);            // sss=null;            sss.delete(0,sss.length() );            //sss=new StringBuffer("计时: ");            sss.append( "计时: ");            sss.append(m_playSpeed-m_nowSpeed);            sss1.delete(0,sss1.length() );            //sss1=new StringBuffer("中文解释是");            sss1.append( "中文解释是");            for(int i=0;i<m_nowSpeed;i++) {                sss1.append(">");            }            g.drawString(sss.toString(),90,tempY,Graphics.LEFT|Graphics.TOP);                        tempY+=15;            g.drawString((String)m_unitContent.elementAt(m_wordId*3),5,tempY,Graphics.LEFT|Graphics.TOP);            tempY+=14;            drawSpell(g,(String)m_unitContent.elementAt(m_wordId*3+1),5,tempY,m_readImg);            tempY+=20;            if (m_nowSpeed>(m_playSpeed/2-1)) {                tempC=(String)m_unitContent.elementAt(m_wordId*3+2);                                while(  tempC.length()>10) {                    tempC1=tempC.substring(0,10);                    g.drawString(tempC1,5,tempY,Graphics.LEFT|Graphics.TOP);                    tempC=tempC.substring(10);                    tempY+=18;                }                g.drawString(tempC,5,tempY,Graphics.LEFT|Graphics.TOP);            }            else {                g.drawString(sss1.toString(),2,tempY,Graphics.LEFT|Graphics.TOP);            }                        if ((m_wordId<m_unitSize-1)||(m_nowSpeed<m_playSpeed)) {                if (m_unitType!=0)                    g.drawString("记录",2,110,Graphics.LEFT|Graphics.TOP);                else                    g.drawString("删除",2,110,Graphics.LEFT|Graphics.TOP);            }            else {                g.drawString("重新",2,110,Graphics.LEFT|Graphics.TOP);                m_status=STATUS_WAITREPEAT;            }            g.drawString("0帮助",64,110,Graphics.HCENTER|Graphics.TOP);            g.drawString("返回",100,110,Graphics.LEFT|Graphics.TOP);            if ((m_status==STATUS_WAITWRITEWORD)||(m_status==STATUS_WAITDELWORD)||(m_status==STATUS_WAITHELP)) {                if(m_status==STATUS_WAITHELP) {                    g.setColor(255,255,255);                    g.fillRoundRect(5,5,118,110,2,2);                    g.setColor(51,0,0);                    g.drawRect(6,6,115,107);                    g.drawString("上下键单词选择",10,10,g.LEFT|g.TOP);                    g.drawString("提机键直接显示中文",10,30,g.LEFT|g.TOP);                    if (m_unitType==1) {                        g.drawString("左右键单元选择",10,50,g.LEFT|g.TOP);                        g.drawString("记录功能把单词记录",10,70,g.LEFT|g.TOP);                        g.drawString("到自定义单词集中",10,90,g.LEFT|g.TOP);                    }                    else {                        g.drawString("删除功能删除自定义",10,50,g.LEFT|g.TOP);                        g.drawString("单词",10,70,g.LEFT|g.TOP);                    }                }                else {                    g.setColor(255,255,255);                    g.fillRoundRect(18,38,94,54,2,2);                    g.setColor(51,0,0);                    g.drawRect(20,40,90,50);                    if(m_status==STATUS_WAITWRITEWORD) {                        g.drawString("记录当前单词",25,42,g.LEFT|g.TOP);                        g.drawString("按提机键确认,",25,58,g.LEFT|g.TOP);                        g.drawString("其他键放弃。",25,74,g.LEFT|g.TOP);                    }                    else {                        g.drawString("删除当前单词",25,42,g.LEFT|g.TOP);                        g.drawString("按提机键确认,",25,58,g.LEFT|g.TOP);                        g.drawString("其他键放弃。",25,74,g.LEFT|g.TOP);                    }                }            }            g.setColor(255,255,0);        }        else {            g.drawString("当前词集暂无单词...",64,64,g.HCENTER|g.TOP);            g.drawString("返回",100,110,Graphics.LEFT|Graphics.TOP);        }            }        public void startThread() {        m_jugThread=true;        m_thread.start();            }    public void stopThread() {        m_jugThread=false;        m_thread = null;    }            public void beginNewPlay() {        m_wordId=0;        m_nowSpeed=0;        m_status=STATUS_PLAY;        if (m_unitContent==null) {            m_unitSize=0;        }        else            m_unitSize=m_unitContent.size()/3;    }    /**     * Called when a key is pressed.     */    protected  void keyPressed(int keyCode) {                if ((m_status==STATUS_WAITWRITEWORD)||(m_status==STATUS_WAITDELWORD)||(m_status==STATUS_WAITHELP)) {            if(keyCode==-5) {                if(m_status==STATUS_WAITWRITEWORD) {                    midlet.doWriteWord((String)m_unitContent.elementAt(m_wordId*3),(String)m_unitContent.elementAt(m_wordId*3+1),(String)m_unitContent.elementAt(m_wordId*3+2));                                    }                                else                    if(m_status==STATUS_WAITDELWORD) {                        if(midlet.doDelWord((String)m_unitContent.elementAt(m_wordId*3))) {                            m_unitContent.removeElementAt(m_wordId*3);                            m_unitContent.removeElementAt(m_wordId*3);                            m_unitContent.removeElementAt(m_wordId*3);                            beginNewPlay();                        }                                            }            }            m_status=STATUS_PLAY;        }        else {            switch (keyCode) {                case -7:                    stopThread();                    midlet.setUnitPos(m_unitId+1);                    midlet.nowDisplay(this,midlet.WIN_JDC);                    break;                case 32:                    if (m_status==STATUS_WAITREPEAT) {                        beginNewPlay();                    }                    else                        if (m_unitType==1)                            m_status=STATUS_WAITWRITEWORD;                        else                            m_status=STATUS_WAITDELWORD;                    break;                case -3:                    if (m_unitType==1) {                        if (m_unitId>0) {                            m_unitId--;                                                        midlet.getUnit(m_unitType,m_unitId,m_unitContent);                            beginNewPlay();                        }                    }                    break;                case -4:                    if(m_unitType==1) {                        if (m_unitId<midlet.m_unitNumber-1) {                            m_unitId++;                            midlet.getUnit(m_unitType,m_unitId,m_unitContent);                            beginNewPlay();                            // repaint();                        }                    }                    break;                case -2:                    if (m_wordId<m_unitSize-1) {                        m_wordId++;                        m_nowSpeed=0;                        m_status=STATUS_PLAY;                    }                    break;                                    case -1:                    if (m_wordId>0) {                        m_wordId--;                        m_nowSpeed=0;                        m_status=STATUS_PLAY;                    }                    break;                case -5:                    if (m_nowSpeed<(m_playSpeed/2))                        m_nowSpeed=m_playSpeed/2;                    break;                case KEY_NUM0:                    m_status=STATUS_WAITHELP;                    break;            }        }    }            public void run() {        int tempTime=0;        while(m_jugThread) {            try {                                Thread.sleep(200);                if (m_status==STATUS_PLAY) {                    if(tempTime<6)                    {  tempTime++;                       continue;                    }                    else {                        m_nowSpeed++;                        tempTime=0;                        System.gc();                    }                                        if (m_nowSpeed>m_playSpeed) {                        if(m_wordId<m_unitSize-1) {                            m_wordId++;                            m_nowSpeed=0;                        }                        else {                            m_status=STATUS_WAITREPEAT;                        }                    }                }                //Display.getDisplay( midlet ).callSerially( this );                repaint();                serviceRepaints();                            }            catch(Exception e) {            }                    }    }    }

⌨️ 快捷键说明

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