騎豬闖天下

          J2ME隨筆,記錄成長的腳步

          統計

          留言簿(3)

          閱讀排行榜

          評論排行榜

          [J2ME-原創]畫系統菜單

          畫菜單也很簡單,也是一個坐標定位的問題

          以觸摸屏中實現畫菜單為例,部分代碼實現如下:

          /**
           * 畫系統菜單
           * 
           * 
          @author Du Changfeng
           * @Time  2010.03.05 
           
          */

          public class DrawMenu {

              
          private static boolean showMenu=false
          ;
              
          private static int menu_LineHeight = Font.getDefaultFont().getHeight() + 2
          ;
              
          private static int menu_X = EWLScreen.SCREEN_WIDTH /2
          ;
              
          private static int menu_Y = EWLScreen.SCREEN_HEIGHT - menu_LineHeight*7
          ;
              
          private static int menu_Width = EWLScreen.SCREEN_WIDTH/2
          ;
              
          private static int menu_Heigth = menu_LineHeight*7
          ;
              
          private static int highLightLineNum = 1
           ;
              
              
          /**
               * 畫menu菜單
               * 當使用觸摸屏時,畫此
               * 當按左右軟件時,顯示系統菜單界面,不畫這里
               
          */

              
          public final void paint(Graphics g){

                  g.setClip(menu_X
          -1, menu_Y-1, menu_Width+1, menu_Heigth+1
          );
                  
                  g.setColor(
          0xd9d9f3
          );
                  g.fillRect(menu_X, menu_Y, menu_Width, menu_Heigth);
                  g.setColor(
          0x9f9f9f
          );
                  g.drawRect(menu_X
          -1, menu_Y-1, menu_Width+1, menu_Heigth+1
          );
                  g.drawLine(menu_X
          +2 , menu_Y + menu_LineHeight-2, menu_X+menu_Width-4, menu_Y + menu_LineHeight-2
          );
                  
                  String menuStr[]
          ={"菜單","1    繼續閱讀","2    記為書簽","3    快速選頁","4    返回大廳","5    下一話"}
          ;
                      
                  g.setColor(
          0x000000
          );              
                  g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL));
                  g.drawString(menuStr[
          0], menu_X + EWLScreen.SCREEN_WIDTH/4, menu_Y-1, Graphics.HCENTER|
          Graphics.TOP);
                  g.drawString(menuStr[
          1], menu_X+4, menu_Y+menu_LineHeight+2, Graphics.LEFT |
           Graphics.TOP);
                  g.drawString(menuStr[
          2], menu_X+4, menu_Y+menu_LineHeight*2+2, Graphics.LEFT |
           Graphics.TOP);
                  g.drawString(menuStr[
          3], menu_X+4, menu_Y+menu_LineHeight*3+2, Graphics.LEFT |
           Graphics.TOP);
                  g.drawString(menuStr[
          4], menu_X+4, menu_Y+menu_LineHeight*4+2, Graphics.LEFT |
           Graphics.TOP);
                  g.drawString(menuStr[
          5], menu_X+4, menu_Y+menu_LineHeight*5+2, Graphics.LEFT |
           Graphics.TOP);
                  
                  g.setColor(
          0x000000
          );
                  g.fillRect(menu_X
          +2, menu_Y+menu_LineHeight*highLightLineNum, menu_Width-4
          , menu_LineHeight);
                  g.setColor(
          0xffffff
          );
                  g.drawString(menuStr[highLightLineNum], menu_X
          +4
          ,
                          menu_Y
          +menu_LineHeight*highLightLineNum+2, Graphics.LEFT |
           Graphics.TOP);
              
              }

              
              
          public final void pointerPressed(int x,int y){
                  
          if(showMenu)
          {

                      
          if((x>menu_X && x< menu_X + menu_Width) &&

                              (y
          >menu_Y+ menu_LineHeight && y<menu_Y + menu_LineHeight*2)){
                          
          if(highLightLineNum==1)
          {
                              commandAction(continueCommand, 
          this
          );
                              showMenu
          =false
          ;
                          }
          else{
                              highLightLineNum
          =1
          ;
                          }

                      }
          else if((x>menu_X && x< menu_X + menu_Width) &&
                              (y
          >menu_Y + menu_LineHeight*2&& y<menu_Y + menu_LineHeight*3)){
                          
          if(highLightLineNum==2)
          {
                              commandAction(bookmarkCommand, 
          this
          );
                              showMenu
          =false
          ;
                          }
          else{
                              highLightLineNum
          =2
          ;
                          }

                      }
          else if((x>menu_X && x< menu_X + menu_Width) &&
                              (y
          >menu_Y + menu_LineHeight*3 && y<menu_Y + menu_LineHeight*4)){
                          
          if(highLightLineNum==3)
          {
                              commandAction(pageCommand, 
          this
          );
                              showMenu
          =false
          ;
                          }
          else{
                              highLightLineNum
          =3
          ;
                          }

                      }
          else if((x>menu_X && x< menu_X + menu_Width) &&
                              (y
          >menu_Y + menu_LineHeight*4 && y<menu_Y+ menu_LineHeight*5 )){
                          
          if(highLightLineNum==4)
          {
                              commandAction(cancelCommand, 
          this
          );
                              showMenu
          =false
          ;
                          }
          else{
                              highLightLineNum
          =4
          ;
                          }

                      }
          else if((x>menu_X && x< menu_X + menu_Width) &&
                              (y
          >menu_Y + menu_LineHeight*5 && y<menu_Y + menu_LineHeight*6)){
                          
          if(highLightLineNum==5)
          {
                              commandAction(nextCommand, 
          this
          );
                              showMenu
          =false
          ;
                          }
          else{
                              highLightLineNum
          =5
          ;
                          }

                      }

                  }

              }

              
              
          }

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


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


          網站導航:
           
          主站蜘蛛池模板: 女性| 天长市| 刚察县| 隆子县| 辛集市| 五河县| 元谋县| 哈巴河县| 墨竹工卡县| 延津县| 宾阳县| 河源市| 宿松县| 五原县| 昭通市| 阜阳市| 积石山| 枞阳县| 神木县| 桂阳县| 长治市| 肥东县| 库伦旗| 蕲春县| 玛多县| 绵阳市| 锡林浩特市| 文昌市| 温泉县| 双辽市| 武城县| 刚察县| 昭苏县| 谢通门县| 阿克苏市| 杂多县| 汶川县| 遵义市| 石台县| 五常市| 阿瓦提县|