騎豬闖天下

          J2ME隨筆,記錄成長的腳步

          統計

          留言簿(3)

          閱讀排行榜

          評論排行榜

          [J2ME-原創]波浪字體效果代碼

          波浪字體效果代碼,這是自己早期時研究的一個效果代碼,代碼比較完整,新建工程把類加進去即可看出效果。

          全部代碼如下:
          /**
           * @function: 波浪字體效果代碼.
           * 
          @author:   杜長風
           * @time:       080710
           
          */

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

          public class DrawCanvas extends MIDlet implements CommandListener {
              
          private Command exitCommand;
              
          private HCanvas sg;
              
              
          public DrawCanvas() 
              
          {
                  exitCommand 
          = new Command("Exit", Command.EXIT, 1);
                  sg 
          = new HCanvas();
                  sg.addCommand(exitCommand);
                  sg.setCommandListener(
          this);
                  Display.getDisplay(
          this).setCurrent(sg);
              }

              
              
          protected void startApp(){
              }

              
              
          protected void pauseApp() {
              }

              
              
          protected void destroyApp(boolean arg0)
              }

              
              
          public void commandAction(Command c, Displayable d) {
                  
          if (c == exitCommand) 
                  destroyApp(
          false); 
                  notifyDestroyed();
                  }

              }
           
          }



          class HCanvas extends Canvas implements Runnable
          {
              
          //要顯示的字符
              private String str=new String("W  E L C O M  E");
              
              
          //上下浮動的高度序列.
              private int[] ak={1,2,3,4,5,6,7,8,7,6,5,4,3,2,1,2,3,4,5,6,7,8,7,6,5,4,3,2};
              
              
          boolean kaishi=true;
              
              
          //設置循環標志位,一定要>=字符串長度.
              private int k=15;

              
          public HCanvas (){
                  
          new Thread(this).start();
              }
           

              
          protected void paint(Graphics g){
                  g.setColor(
          220);
                  g.fillRect(
          0,0,getWidth(),getHeight());
                  g.setColor( 
          255255,255);
                  Font font 
          = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_UNDERLINED,Font.SIZE_MEDIUM); 
                  g.setFont(font);

                  
          /**
                   * 1.畫字符串,是一個字符一個字符畫上去的.
                   * 2."20+i*5",是橫坐標,及字間距的寬度
                   * 3."40-ak[k-i]",是縱坐標,及上下浮動的高度.注意:一個ak周期的長度,即:1->8->1共15一定
                   *      要大于至少等于循環標志位長度.即:
                   *         字符串長度<=循環標志位長度<=ak周期長度<=ak至少有兩個周期.
                   * 
                   * 4.經過測試,在字符串小于15個時,以上數字參數最佳.
                   * 
                   
          */

                  
          for(int i=0;i< str.length();i++){
                      g.drawString(str.substring(i,i
          +1),   80+i*5,    40-ak[k-i],    0);                        
                      System.out.println(
          "ak[k-i] = " + ak[k-i] );
                  }
           
                  System.out.println(
          "********************************" );
              }

              
              
          public void run(){
                  
          while(kaishi){
                      
          try {
                          repaint(); 
          //再描繪
                          Thread.sleep(100); //等待一定時間
                          k++;        //循環參數,ak至少有兩個周期,即至少是2倍K的值.
                          if(k>(ak.length-1)) 
                              k
          =15;   //從新開始循環.
                      }
          catch(InterruptedException e){}
                  }
           
              }

          }
           

          posted on 2010-03-05 13:56 騎豬闖天下 閱讀(382) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 波密县| 吉林市| 南川市| 绍兴市| 大田县| 进贤县| 广东省| 乐昌市| 百色市| 台州市| 仪征市| 芜湖市| 伊宁县| 金川县| 灌云县| 浮梁县| 沅江市| 济源市| 基隆市| 牡丹江市| 青海省| 舒城县| 永善县| 隆林| 依安县| 马鞍山市| 清远市| 城口县| 石屏县| 若羌县| 分宜县| 大冶市| 西平县| 武陟县| 盐城市| 依兰县| 闸北区| 申扎县| 安陆市| 定兴县| 英超|