騎豬闖天下

          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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 延川县| 蓬溪县| 德保县| 恩施市| 都昌县| 威海市| 南宫市| 潞西市| 雅安市| 江源县| 夏津县| 思茅市| 长兴县| 桂林市| 大石桥市| 阿克苏市| 苍山县| 南宁市| 遂溪县| 织金县| 吴江市| 绩溪县| 庆云县| 永春县| 武冈市| 赞皇县| 博客| 镇康县| 巨鹿县| 田阳县| 苍溪县| 金秀| 神农架林区| 大兴区| 阿合奇县| 曲阜市| 澜沧| 新密市| 宜城市| 上饶市| 孟村|