毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

移动终端汉语拼音输入法及本地搜索接口实现技术 第7页

更新时间:2010-6-19:  来源:毕业论文
移动终端汉语拼音输入法及本地搜索接口实现技术 第7页
图4-2  InputEdit类、CutString类的类图本模块实现的核心代码包括InputEdit类中的InputEdit函数和CutString类中drawCutString函数,InputEdit函数主要实现对输入法用户界面的编辑。其核心代码如下:
public InputEdit() {
font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
fontWidth = (byte)font.charWidth(CHAR);
fontHeight = fontWidth;//(byte)font.getHeight();
letterWidth = (byte)font.charWidth(LETTER);
curSpells = new StringBuffer();
selectedSpell = new StringBuffer();
inputedChars = new StringBuffer();
cutString = new CutString();
editFrameCell = 2;
editModeWidth = fontWidth + 16;
inputStatus = STATUS_SPELL;
init();
drawCutString函数主要实现光标的绘制,其核心代码如下:
public int drawCutString(Graphics graphic,String str,int x,int y,int width,int height,boolean isShowEditBG){
  if(str != null){
   if(str.hashCode() != oldHashcode){
    initStatus();
    oldCilpX = graphic.getClipX();
    oldCilpY = graphic.getClipY();
    oldCilpWidth = graphic.getClipWidth();
    oldCilpHeight = graphic.getClipHeight();
    oldFont = graphic.getFont();
    maxCanvasWidth = width - 6;
    maxCanvasHeight = height;
    for(int i = 0;i < str.length();i++){
     sb.append(str.charAt(i));
     if(font.stringWidth(sb.toString()) > maxCanvasWidth - fontWidth){
      textVector.addElement(sb.toString());
      sb.delete(0, sb.length());
     }else if(str.length() - 1 == i){
      textVector.addElement(sb.toString());
     }
    }
    rowCount = textVector.size();
    if(oldStrLength != str.length()){
     if(oldStrLength > str.length()){
      decCursorIndex();
     }else{
      addCursorIndex();
     }
     oldStrLength = str.length();
    }
    isMoreThanCanvas();
    oldHashcode = str.hashCode();
毕业论文http://www.Lwfree.cn/+ 9, maxCanvasHeight + 2);
  drawEditBG(graphic, x, y, isShowEditBG);
  int count = 0;
  for(int i =0;i < textVector.size();i++){
    graphic.drawString(textVector.elementAt(i).toString(), x,
      y + i * rowHeight - rightLineIndex * rowHeight, 0);
  }
  //绘制光标
  cursorCount++;
  graphic.setColor(0);
  if(cursorCount % 6 == 0 && isShowCursor){
   int _x = x;
   if(textVector.size() > 0)
    _x = x + font.stringWidth(textVector.elementAt(cursorH).toString().substring(0,cursorIndex));
   graphic.drawLine(_x, y + (cursorH) * rowHeight - rightLineIndex * rowHeight, _x,
     y + (cursorH) * rowHeight + fontWidth + 2 - rightLineIndex * rowHeight);
  }
  count = textVector.size();
  drawRightLine(graphic, x, y);
  graphic.setClip(oldCilpX, oldCilpY, oldCilpWidth, oldCilpHeight);
  if(oldFont != null)
   graphic.setFont(oldFont);
  return count;
 }
4.3  主控制模块
所有的J2ME程序都必须包含有一个继承自javax.microedition.midlet.MIDLet的类,作为整个程序的入口点。本输入法中,入口程序是MainMIDLet。它作为程序的主控类,文护程序的运行状态,为系统的初始化,启动,输入状态的改变等提供本文源自优文论文网方法,其它的工作几乎不涉及。MainMIDLet类图如图4-3所示。
 图4-3  MainMIDLet类图
4.4  本章小结
本章详细介绍了智能终端输入法的设计与实现。对输入法进行了详细的设计,分析了各模块构成,给出了部分关键代码的实现。

上一页  [1] [2] [3] [4] [5] [6] [7] 

移动终端汉语拼音输入法及本地搜索接口实现技术 第7页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。